整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          《CSS 實戰(zhàn)指南》2024 第二章:CSS美化文本

          本的字體、大小、顏色和樣式

          CSS 美化文本可以通過以下方式實現(xiàn):

          1. 字體樣式:使用 font-family 屬性設(shè)置字體族,如 "Arial", "Times New Roman", "Verdana" 等。
          2. 字體大小:使用 font-size 屬性設(shè)置字體大小,如 "12px", "1em", "100%" 等。
          3. 字體粗細(xì):使用 font-weight 屬性設(shè)置字體粗細(xì),如 "normal", "bold", "bolder" 等。
          4. 字體樣式:使用 font-style 屬性設(shè)置字體樣式,如 "normal", "italic", "oblique" 等。
          5. 文本對齊:使用 text-align 屬性設(shè)置文本對齊方式,如 "left", "right", "center" 等。
          6. 文本裝飾:使用 text-decoration 屬性設(shè)置文本裝飾,如 "none", "underline", "overline", "line-through" 等。
          7. 文本顏色:使用 color 屬性設(shè)置文本顏色,如 "red", "#FF0000", "rgb(255, 0, 0)" 等。
          8. 文字陰影:使用 text-shadow 屬性設(shè)置文字陰影效果,如 "2px 2px 2px #000"。
          9. 文字轉(zhuǎn)換:使用 text-transform 屬性設(shè)置文字轉(zhuǎn)換方式,如 "uppercase"(大寫)、"lowercase"(小寫)和 "capitalize"(首字母大寫)。
          10. 文字間距:使用 letter-spacing 屬性設(shè)置字母之間的間距,如 "2px"、"0.1em" 等。
          11. 文字行高:使用 line-height 屬性設(shè)置文字行高,如 "1.5"、"1.5em"、"150%" 等。

          以下是一些示例代碼:

          /* 設(shè)置字體樣式 */
          p {
          font-family: Arial, sans-serif;
          }
          /* 設(shè)置字體大小 */
          h1 {
          font-size: 24px;
          }
          /* 設(shè)置字體粗細(xì) */
          strong {
          font-weight: bold;
          }
          /* 設(shè)置字體樣式 */
          em {
          font-style: italic;
          }
          /* 設(shè)置文本對齊 */
          ul {
          text-align: left;
          }
          /* 設(shè)置文本裝飾 */
          a {
          text-decoration: underline;
          }
          /* 設(shè)置文本顏色 */
          h2 {
          color: #FF0000;
          }
          /* 設(shè)置文字陰影 */
          h3 {
          text-shadow: 2px 2px 2px #000;
          }
          /* 設(shè)置文字轉(zhuǎn)換 */
          p {
          text-transform: capitalize;
          }
          /* 設(shè)置文字間距 */
          p {
          letter-spacing: 1px;
          }
          /* 設(shè)置文字行高 */
          p {
          line-height: 1.5;
          }

          CSS文本的對齊、縮進(jìn)和行高可以通過以下屬性進(jìn)行設(shè)置:

          1. 對齊(text-align):用于設(shè)置文本的水平對齊方式,可選值有 left、right、center 和 justify。
          p { text-align: center; }

          1. 縮進(jìn)(text-indent):用于設(shè)置文本的首行縮進(jìn),可以設(shè)置為固定像素值或百分比。
          p { text-indent: 2em; }
          1. 行高(line-height):用于設(shè)置文本行之間的垂直間距,可以設(shè)置為固定像素值或百分比。
          p { line-height: 1.5; }

          CSS文本的裝飾和轉(zhuǎn)換可以通過以下屬性進(jìn)行設(shè)置:

          1. 文本裝飾(text-decoration):用于設(shè)置文本的裝飾效果,可選值有 none、underline、overline、line-through 和 blink。
          p { text-decoration: underline; }
          1. 文本轉(zhuǎn)換(text-transform):用于設(shè)置文本的大小寫轉(zhuǎn)換方式,可選值有 none、capitalize、uppercase 和 lowercase。
          h1 { text-transform: uppercase; }
          1. 文本陰影(text-shadow):用于設(shè)置文本的陰影效果,可以設(shè)置水平偏移、垂直偏移、模糊距離和顏色。
          p { text-shadow: 2px 2px 4px #000000; }

          傳統(tǒng)的面向?qū)ο笳Z言中,給對象添加功能常常使用繼承的方式,但是繼承的方式并不靈活, 還會帶來許多問題:一方面會導(dǎo)致超類和子類之間存在強(qiáng)耦合性,當(dāng)超類改變時,子類也會隨之 改變;另一方面,繼承這種功能復(fù)用方式通常被稱為“白箱復(fù)用”,“白箱”是相對可見性而言的, 在繼承方式中,超類的內(nèi)部細(xì)節(jié)是對子類可見的,繼承常常被認(rèn)為破壞了封裝性。裝飾者模式能夠在不改變對象自身的基礎(chǔ)上,在程序運(yùn)行期間給對象動態(tài)地添加職責(zé)。跟繼承相比,裝飾者是一種更輕便靈活的做法,這是一種“即用即付”的方式

          背景

          當(dāng)我們拍了一張照片準(zhǔn)備發(fā)朋友圈時,許多小伙伴會選擇給照片加上濾鏡。同一張照片、不同的濾鏡組合起來就會有不同的體驗。這里實際上就應(yīng)用了裝飾者模式:是通過濾鏡裝飾了照片。在不改變對象(照片)的情況下動態(tài)的為其添加功能(濾鏡)。

          需要注意的是:由于 JavaScript 語言動態(tài)的特性,我們很容易就能改變某個對象(JavaScript 中函數(shù)是一等公民)。但是我們要盡量避免直接改寫某個函數(shù),這會導(dǎo)致代碼的可維護(hù)性、可擴(kuò)展性變差,甚至?xí)廴酒渌麡I(yè)務(wù)。

          什么是 AOP

          想必大家對"餐前洗手、飯后漱口"都不陌生。這句標(biāo)語其實就是 AOP 在生活中的例子:吃飯這個動作相當(dāng)于切點,我們可以在這個切點前、后插入其它如洗手等動作。

          AOP(Aspect-Oriented Programming):面向切面編程,是對 OOP 的補(bǔ)充。利用AOP可以對業(yè)務(wù)邏輯的各個部分進(jìn)行隔離,也可以隔離業(yè)務(wù)無關(guān)的功能比如日志上報、異常處理等,從而使得業(yè)務(wù)邏輯各部分之間的耦合度降低,提高業(yè)務(wù)無關(guān)的功能的復(fù)用性,也就提高了開發(fā)的效率。

          在 JavaScript 中,我們可以通過裝飾者模式來實現(xiàn) AOP,但是兩者并不是一個維度的概念。 AOP 是一種編程范式,而裝飾者是一種設(shè)計模式。

          ES3

          了解了裝飾者模式和 AOP 的概念之后,我們寫一段能夠兼容 ES3 的代碼來實現(xiàn)裝飾者模式:

          這樣我們就實現(xiàn)了抽離拍照與濾鏡邏輯,如果以后需要自動上傳功能,也可以通過aop函數(shù)after來添加。如果我們把它加到函數(shù)原型鏈上,F(xiàn)unction.prototype.before 方法和 Function.prototype.after 方法如下圖,

          那么使用起來就更加方便了

          ES5

          在 ES5 中引入了Object.defineProperty,我們可以更方便的給對象添加屬性:

          基于原型鏈和類的裝飾者實現(xiàn)

          我們知道,在 JavaScript 中,函數(shù)也好,類也好都有著自己的原型,通過原型鏈我們也能夠很方便的動態(tài)擴(kuò)展,以下是基于原型鏈的寫法:

          使用 ES7 修飾器實現(xiàn)裝飾者

          在 ES7 中引入了@decorator 修飾器的提案,參考阮一峰的文章。修飾器是一個函數(shù),用來修改類的行為。目前Babel轉(zhuǎn)碼器已經(jīng)支持。注意修飾器只能裝飾類或者類屬性、方法。三者的具體區(qū)別請參考 MDN Object.defineProperty ;而 TypeScript 的實現(xiàn)又有所不同:TypeScript Decorator。

          可以看到,使用修飾器的代碼非常簡潔明了。

          場景:性能上報

          裝飾者模式可以應(yīng)用在很多場景,典型的場景是記錄某異步請求請求耗時的性能數(shù)據(jù)并上報:

          這樣使用@report修飾后的代碼就會上報請求所消耗的時間。擴(kuò)展或者修改report函數(shù)不會影響業(yè)務(wù)代碼,反之亦然。

          場景:異常處理

          我們可以對原有代碼進(jìn)行簡單的異常處理,而無需侵入式的修改:

          通過以上兩個示例我們可以看到,修飾器的定義很簡單,功能卻非常強(qiáng)大,尤其是在nodejs的開發(fā)中,裝飾器很常用、很好用,也很有用。


          小結(jié)

          我們一步一步通過高階函數(shù)、原型鏈、Object.defineProperty和@Decorator分別實現(xiàn)了裝飾者模式。接下來在回顧一下:

          • 裝飾者模式非常適合給業(yè)務(wù)代碼附加非業(yè)務(wù)相關(guān)功能(如日志上報),就如同給照片加濾鏡;
          • 裝飾者模式非常適合無痛擴(kuò)展別人的代碼(你經(jīng)常需要接手別人的項目吧)

          下期預(yù)告:

          微信小程序視頻教程來啦,每周末都有前端視頻教程學(xué)

          參考文章:

          https://juejin.im/post/5d0f5dd551882532d72507f2

          https://juejin.im/post/5c2e10a76fb9a049c0432697

          eb前端開發(fā)課程:css文本模塊-文本裝飾。

          講課人:波波老師。

          text-decoration:文字添加裝飾。line-height:行高。text-shadow:文字添加陰影。text-align:文字水平對齊方式。word-break:文本自動換行。word-wrap:長單詞自動換行。

          text-decoration文本的裝飾主要用于設(shè)置文本的上劃線、下劃線和中劃線,也就是刪除線。這個功能最主要的用處是處理鏈接默認(rèn)自帶的下劃線。

          來看一下代碼。

          ·首先來做一個鏈接,可以看到這個鏈接是帶一個下劃線的,把下劃線去掉。text-decoration:none,可以看到下劃線就去掉了。

          ·然后再來做class="under",等于下部。class="over",這個class="del"。從下劃線、上劃線、刪除線。

          ·來做這三個樣式。首先是得.under,把它做成underline,可以看underline是有下劃線的。再做一個overline,做成overline,overline是上劃線。這個有點近了,把它分開,這回可以看到這個是有上劃線的。再做一個刪除線,del,看到這個做了一個刪除線。

          這個先講到這里,進(jìn)行下一個。


          主站蜘蛛池模板: 一区二区三区四区视频在线| 日韩亚洲一区二区三区| 国产AV天堂无码一区二区三区| 在线观看国产一区亚洲bd| 人妻体内射精一区二区| 中文字幕无线码一区2020青青| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 日韩国产一区二区| 欧美日韩一区二区成人午夜电影 | 精品乱人伦一区二区三区| 国产一区二区三区手机在线观看| 亚洲国产欧美日韩精品一区二区三区 | 亚洲一区二区三区深夜天堂| 国产成人无码一区二区三区在线| 无码日韩人妻AV一区二区三区| 日本一区二区三区在线看| 午夜爽爽性刺激一区二区视频| 国产乱人伦精品一区二区在线观看 | 手机福利视频一区二区| 日本一区二区三区不卡视频| 在线成人一区二区| 无码一区二区三区亚洲人妻 | 老熟妇仑乱视频一区二区| 亚洲av午夜福利精品一区| 国产激情无码一区二区app| 精品乱人伦一区二区三区| 香蕉免费一区二区三区| 中文字幕一区二区精品区| 日韩精品人妻一区二区三区四区| 免费一本色道久久一区| 国产精品一区二区久久乐下载| 国产一区二区在线视频播放| 无码国产亚洲日韩国精品视频一区二区三区 | 久久国产一区二区三区| 久久无码人妻一区二区三区| 亚洲AV成人一区二区三区在线看| 欧美亚洲精品一区二区| 538国产精品一区二区在线| 伊人久久精品无码av一区| 91久久精品无码一区二区毛片| 怡红院AV一区二区三区|