站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        值得收藏css預(yù)處理器scss的使用總結(jié)

        本篇文章給大家?guī)砹岁P(guān)于css處理器scss的相關(guān)知識,css預(yù)處理器:用一種專門的編程語言,為CSS增加了一些編程的特性,將CSS作為目標生成文件,然后開發(fā)者就只要使用這種語言進行編碼工作。希望對大家有幫助。

        值得收藏css預(yù)處理器scss的使用總結(jié)

        1. 為什么會出現(xiàn)css預(yù)處理器

        –CSS不是一種編程語言,僅僅只能用來編寫網(wǎng)站樣式,在web初期時,網(wǎng)站的搭建還比較基礎(chǔ),所需要的樣式往往也很簡單。但是隨著用戶需求的增加以及網(wǎng)站技術(shù)的升級,css一成不變的寫法也漸漸不再滿足于項目。沒有類似js這樣的編程語言所有的變量,常量以及其他的編程語法,css的代碼難免會顯得臃腫以及難以維護。但是又沒有css的替代品,于是css預(yù)處理器就作為css的擴展,出現(xiàn)在了前端技術(shù)中。


        2.常見的css預(yù)處理器

        –發(fā)展至今,CSS預(yù)處理器的技術(shù)已經(jīng)相當(dāng)成熟,也涌現(xiàn)出了很多中不同的CSS預(yù)處理器語言。目前主流的有三種:Sass(Scss), Less, Stylus。


        3.CSS預(yù)處理器的方便之處

        –以Sass為例

        –Sass主要的功能有:允許定義變量,允許CSS代碼嵌套,函數(shù)功能,Mixin,繼承等。 這些功能使得編寫CSS更加貼合編程語言的習(xí)慣,使得CSS代碼復(fù)用性更高,代碼功能更加直觀,也更加易于程序員的閱讀與維護。


        4. Sass預(yù)處理器

        變量

        Sass允許定義變量用于代碼復(fù)用,使用 $ 進行變量定義。在有使用相同屬性的代碼塊時,可以通過定義一個變量,將復(fù)用的屬性儲存到變量中。當(dāng)需要統(tǒng)一修改某個屬性值時,就無須在代碼中挨個去找需要修改的屬性,而是直接修改變量即可。

        在公共組件藥品說明書中,對組件的邊框樣式進行了單獨設(shè)置。此樣式也用于組件內(nèi)部各部分分隔的邊框。因此可以將樣式存儲到一個變量當(dāng)中進行復(fù)用。

        /deep/ .borderLayout.showBorder{ border: 1px solid #EBEEF5 } /deep/.borderLayout > p.showBorder.left { border-right: 1px solid #EBEEF5; }

        通過scss的嵌套規(guī)則可以修改為:

        $border: 1px solid #EBEEF5 /deep/ .borderLayout.showBorder{ border: $border } /deep/.borderLayout > p.showBorder.left { border-right: $border; }

        嵌套

        –Sass允許代碼嵌套,用于選擇后代。相對于css原生的后代選擇器,嵌套樣式的代碼,更加直觀。

        /deep/ .ant-anchor-link-active>.ant-anchor-link-title{ color:#303133 }

        公共組件‘藥品說明書’ 的css代碼塊,用于設(shè)置左側(cè)導(dǎo)航欄被鼠標點擊選中時,title的顯示樣式,

        使用嵌套規(guī)則將代碼進行嵌套之后:

        /deep/ .ant-anchor-link-active{  .ant-anchor-link-title{    color:#303133  } }

        嵌套之后的代碼,更接近js一樣的結(jié)構(gòu),而不再是一整行的選擇器。更有利于觀察出代碼間的各種關(guān)系。

        此外,scss的也可以實現(xiàn)屬性嵌套以及偽元素嵌套,從而實現(xiàn)更加精簡的代碼


        Mixin

        在JavaScript等編程語言中,允許將需要復(fù)用的代碼塊編寫成一個函數(shù),在有需要的地方就調(diào)用這個表達式從而完成代碼編寫一次就可以完成多次復(fù)用的功能。scss的Mixin實現(xiàn)的也是類似的功能。但是Mixin的代碼塊不產(chǎn)生一個值。

        定義Mixin代碼塊需要使用 @mixin ,調(diào)用一個已定義的Mixin代碼塊使用@include

        依舊是以藥品說明書這個組件的代碼說明

        /deep/ .borderLayout > p > .layoutCon {    overflow: hidden;    &:hover{ // 此處即為偽元素嵌套        overflow: auto;    } } .m-nav-bar{    display: flex;    flex-direction: column;    overflow: auto;    height:100%;    overflow: hidden;    &:hover{        overflow: auto;    } }

        組件中有兩個選擇器都出現(xiàn)了同一段css代碼塊,其作用是隱藏頁面中的滾動條,當(dāng)鼠標hover到所屬區(qū)域時,滾動條顯示。

        隱藏滾動條的代碼可以使用mixin單獨定義出來,然后再調(diào)用。

        @mixin hide-scroll{  overflow: hidden;    &:hover{        overflow: auto;    } }  /deep/ .borderLayout > p > .layoutCon {   @include hide-scroll; }  .m-nav-bar{ 		@include hide-scroll;    display: flex;    flex-direction: column;    overflow: auto;    height:100%; }

        繼承

        繼承也是編程語言中,減少代碼量的重要功能,在scss中,繼承功能同樣重要。如果一個樣式與另外一個樣式幾乎相同,只有少量的區(qū)別,則使用繼承就顯得很有用。

        當(dāng)需要繼承一段代碼時,可以使用@extend,extend之后的選擇器就是被繼承代碼。

        (看起來,繼承和mixin實現(xiàn)的功能似乎是類似的。如果將@mixin的代碼,直接繼承,實現(xiàn)的功能會是相同的嗎?)

        (學(xué)習(xí)視頻分享:css視頻教程)

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 一本一本久久A久久综合精品| 国产精品亚洲精品日韩已满| 久久精品国产亚洲AV嫖农村妇女 | 亚洲国产精品婷婷久久| 亚洲国产精品久久久天堂| 国产精品igao视频| 国产精品无码A∨精品影院| 日本精品一区二区三区在线视频| 久久亚洲国产精品一区二区| 久久99精品久久久久久hb无码| 久久久久久青草大香综合精品| 91自慰精品亚洲| 精品一区二区久久久久久久网站| 久久精品中文字幕无码绿巨人| 亚洲精品tv久久久久久久久久| 精品国产午夜肉伦伦影院| 国产999精品久久久久久| 97热久久免费频精品99| 精品人伦一区二区三区潘金莲| 在线观看亚洲精品福利片 | 成人国产精品一区二区网站 | 精品国产亚洲男女在线线电影| 久久线看观看精品香蕉国产| 99久久精品国产麻豆| 东京热TOKYO综合久久精品| 欧美精品v欧洲精品| 午夜天堂精品久久久久| 亚洲精品无码不卡在线播HE | 国产精品久线在线观看| 久久国产精品成人影院| 日产精品久久久久久久性色| 中文字幕久久精品无码| 亚洲精品欧美二区三区中文字幕| 国内精品国产成人国产三级| 国内精品久久久久久久影视麻豆| 国产亚洲精品成人a v小说| 国产精品亚洲欧美大片在线观看| 国产精品户外野外| 国产日韩高清三级精品人成| 精品精品国产欧美在线小说区| 精品国产午夜肉伦伦影院|