八.嵌套-選擇器嵌套
Sass 的嵌套分為三種:
<ul>
<li>選擇器嵌套</li>
<li>屬性嵌套</li>
<li>偽類嵌套</li>
</ul>
html 結(jié)構(gòu):
<header>
<nav>
<a href=“##”>Home</a>
<a href=“##”>About</a>
<a href=“##”>Blog</a>
</nav>
<header>
選中 header 中的 a 標簽,在寫 CSS 會這樣寫:
nav a {
color:red;
}
header nav a {
color:green;
}
那么在 Sass 中,就可以使用選擇器的嵌套來實現(xiàn):
nav {
a {
color: red;
header & {
color:green;
}
}
}
header & 表示 "&"公用之前的代碼
header{
nav {
a{ color:green;}
}
}
九屬性嵌套
css 代碼:
.box {
border-top: 1px solid red;
border-bottom: 1px solid green;
}
scss 代碼:
.box {
border: {
top: 1px solid red;
bottom: 1px solid green;
}
}
十.[Sass]混合宏 VS 繼承 VS 占位符
http://www.imooc.com/code/7041
1.Sass 中的混合宏的使用
總結(jié):他不會自動合并相同的樣式代碼聂渊,如果在樣式文件中調(diào)用同一個混合宏满力,會產(chǎn)生多個對應的樣式代碼瞧剖,造成代碼的冗余,這也是 CSSer 無法忍受的一件事情葱椭。不過他并不是一無事處开泽,他可以傳參數(shù)牡拇。
使用時間:代碼塊中涉及到變量,建議使用混合宏來創(chuàng)建相同的代碼塊穆律。
2.Sass 中繼承
總結(jié):使用繼承后惠呼,編譯出來的 CSS 會將使用繼承的代碼塊合并到一起,通過組合選擇器的方式向大家展現(xiàn)
使用時間:如果你的代碼塊不需要專任何變量參數(shù)峦耘,而且有一個基類已在文件中存在罢杉,那么建議使用 Sass 的繼承。
3.Sass 中占位符
總結(jié):編譯出來的 CSS 代碼和使用繼承基本上是相同贡歧,只是不會在代碼中生成占位符 mt 的選擇器。那么占位符和繼承的主要區(qū)別的,“占位符是獨立定義利朵,不調(diào)用的時候是不會在 CSS 中產(chǎn)生任何代碼律想;繼承是首先有一個基類存在,不管調(diào)用與不調(diào)用绍弟,基類的樣式都將會出現(xiàn)在編譯出來的 CSS 代碼中技即。
總結(jié)_1:
三種存在即合理。占位符的好處是樟遣,不調(diào)用是不會編譯出來的而叼。混合宏的好處是豹悬,可以傳參葵陵,但是編譯出來的內(nèi)容冗余。繼承的好處是瞻佛,對不要傳參變動的內(nèi)容繼承后編譯出來的內(nèi)容脱篙,相同部分是在一起的,代碼比較簡潔規(guī)范伤柄。缺點是不能傳參