超快入門sass

前言:

為了提高開發(fā)效率,前去學(xué)習(xí)sass。學(xué)完后發(fā)現(xiàn)非常簡單,官網(wǎng)上前文太多,學(xué)習(xí)起來十分不效率。因此出一片這樣文章,給那些想要把sass快速上手的人。

ps:閱讀本文章前首先需要熟悉css ? ? ? ? ?ps2:第一次寫文章可能不算太好請見諒,文章末尾有介紹編譯sass的編譯器


變量的引入

用$符號聲明變量

$color-red:red

div{color:$color-red}

編譯后:

div{color:red;}

其中$color-red==$color_red

在sass中 不區(qū)分 下劃線和中劃線


css嵌套規(guī)則

此處借用sass官網(wǎng)的代碼

原css代碼:

#content article h1 { color: #333 }

#content article p { margin-bottom: 1.4em }

#content aside { background-color: #EEE }

利用sass嵌套可以這么寫:

#content {

????????article {

????????????h1{color:#333}

????????????P{margin-bottom:1.4em}

????????}

????aside{background-color:#EEE}

}

應(yīng)對類似:hover的偽類時,如:

#content a{color:red}

#content a:hover{color:blue}

用sass寫

#content a{

????????color:red;

????????&:hover{color:blue}

}

如果不是很清楚結(jié)構(gòu)的話,再來一個例子

sass代碼:

#content{?

? ? ?a ?{ ? color: red;

? ? ? ? ? ? ? ? &:hover{color: blue} ?

? ? ? ? ?} ? ?

????&:hover{ color: #000; }

}

編譯后的css:

#content a {color: red; }?

?#content a:hover { color: blue; }

#content:hover { color: #000; }


理解:&符號指向當(dāng)前父級選擇器,改變上文sass代碼

#content{??

??a{ color: red;?????

????body?&:hover{color: blue}?

???}?

???body &:hover{????????color: #000;????}

}

然后編譯

#content a {color: red; }

?body?#content a:hover { color: blue; }

body #content:hover { color: #000; }


群組選擇器嵌套

sass能夠減少重復(fù)的代碼量,如下運用官網(wǎng)的例子,css:

.container h1, .container h2, .container h3 { margin-bottom: .8em }

Sass:

.container{

h1,h2,h3{margin-bottom:.8em}

}

一下子減去許多負(fù)擔(dān),有或者,sass:

nav, aside {?

???a {color: blue}??

? ? p {color: red;}

}

編譯后的css:

nav a, aside a {??color: blue; }

nav p, aside p {??color: red; }


子組合選擇器和同層組合選擇器:>、+和~

此處用官網(wǎng)的例子:

article {

??~ article { border-top: 1px dashed #ccc }

??> section?{ background: #eee }

??dl?> {

????dt?{ color: #333 }

????dd?{ color: #555 }

??}

??nav?+ & { margin-top: 0 }

}

編譯后:

article ~ article { border-top: 1px dashed #ccc }

article > footer { background: #eee }

article dl > dt { color: #333 }

article dl > dd { color: #555 }

nav + article { margin-top: 0 }

不禁讓人想到了&符號

&指向父級,然而在 >+~選擇器的前面加上&并不影響使用,但是面對偽類選擇器&符號必須有,至于為什么,可以自己去嘗試在偽類 : 符號連接的代碼隨便哪一邊多出一個space,試試效果就明白了



嵌套屬性

利用官網(wǎng)的例子

Sass:

nav {

??border: {

??style: solid;

??width: 1px;

??color: #ccc;

??}

}

編譯后的Css:

nav {

??border-style: solid;

??border-width: 1px;

??border-color: #ccc;

}

例子二:

Sass:

nav {

??????border: 1px solid #ccc {

??????????left: 0px;

??????????right: 0px;

??}

}

編譯后的css:

nav {

??border: 1px solid #ccc;

??border-left: 0px;

??border-right: 0px;

}


導(dǎo)入sass文件

@import “sidebar”??

可以省去默認(rèn)的sass和scss的文件后綴

如果要導(dǎo)入原生css,請將css的后綴改為scss


默認(rèn)變量值

$font-size-lg:40px !default;

如果$font-size-lg變量值沒有重新聲明,就使用默認(rèn)值40px


混合器(個人理解為可移動復(fù)制的代碼塊)

使用@mixin做標(biāo)識,并用@include引用,官方例子如下,sass:

@mixin rounded-corners {

? -moz-border-radius: 5px;

? -webkit-border-radius: 5px;

? border-radius: 5px;

}

notice {

? background-color: green;

? border: 2px solid #00aa00;

? @include rounded-corners;

}

編譯成css:

.notice {

? background-color: green;

? border: 2px solid #00aa00;

? -moz-border-radius: 5px;

? -webkit-border-radius: 5px;

? border-radius: 5px;

}

當(dāng)然混合器中還能使用css,如:

@mixin no-bullets {

? list-style: none;

? li {

? ? list-style-image: none;

? ? list-style-type: none;

? ? margin-left: 0px;

? }

}

使用時注意父級選擇器

給混合器傳參


@mixin tag-color($a-color,$b-color:$a-color,$c-color:$a-color){

color:$a-color;

background-color:$b-color;

border-color:$c-color;

}

div{

@include tag-color(red);或者@include tag-color(red,blue,yellow);

}

編譯后的css:

div {

color:red;

background-color:red;

border-color:red; }

選擇器繼承就不講解了,不是那么容易理解的,需要的請去官網(wǎng)第六節(jié)查看https://www.sass.hk/guide/



最后介紹一下編輯器,在做好sass環(huán)境設(shè)置的前提下
第一種:可以使用webstorm,這里貼上如何設(shè)置的帖子
第二種:使用webpack,添加sass環(huán)境,最后打包編譯(webpack很好用,但是學(xué)習(xí)起來有一定的難度這里就不做詳細(xì)介紹)
第三種

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、LESS的官網(wǎng):http://lesscss.org 2、Sass官網(wǎng)地址:http://sass-lang....
    Howie223閱讀 3,940評論 0 5
  • 基礎(chǔ) 聲明變量 普通變量 默認(rèn)變量 變量覆蓋:只需要在默認(rèn)變量之前重新聲明下變量即可 變量的調(diào)用 局部變量和全局變...
    Jill1231閱讀 1,386評論 0 1
  • Sass入門與實戰(zhàn) **Sass is the most mature, stable, and powerful...
    2f3abe35f5ac閱讀 754評論 0 2
  • 學(xué)習(xí)Sass(官網(wǎng):Sass)之前需要了解什么是Sass,Sass全稱:Syntactically Awesome...
    haoxilu閱讀 628評論 0 3
  • 3篇Sci,包括一篇2區(qū)以上 考過商務(wù)英語高級 考過雅思 考過微軟mos大師級 考過日語N1 練出肌肉
    yuanliang12121閱讀 257評論 0 0

友情鏈接更多精彩內(nèi)容