強化CSS 的輔助工具-SCSS的魅力初體驗

一.初識SCSS

在SCSS的官方網站上,他自身的定義是:SCSS是一款強化 CSS 的輔助工具,它在 CSS 語法的基礎上增加了變量 (variables)、嵌套 (nested rules)、混合 (mixins)、導入 (inline imports) 等高級功能,

什麼意思呢?其實就是在CSS的基礎上添加了一些新的功能,簡單理解就是強化了CSS的一款工具而已,增加了一些新的語法,讓使用更加方便,功能更加強大。

強化CSS 的輔助工具-SCSS的魅力初體驗

二.真假SCSS

我們經常聽到SCSS和SASS,總會混淆 二者,感覺二者並沒有什麼太大的區別,或者完全是一樣的?那麼他們到底是什麼,有什麼區別?

其實,SASS有兩種語法格式。

SCSS是其中一種,這種是在CSS3語法的基礎上進行拓展,所以所有的CSS3語法在SCSS中都是通用的,當然CSS的大多數的寫法也是支持的,就算是早期的IE濾鏡寫法也支持,而這種格式以.scss作為拓展名。

另外一種就是被叫做縮進格式,也就是最早的SASS,這是一種簡稱,是一種簡化格式,它使用 “縮進” 代替 “花括號” 表示屬性屬於某個選擇器,用 “換行” 代替 “分號” 分隔屬性,這樣做比 SCSS 更容易閱讀,書寫也更快速。當然縮進格式也可以使用 SASS的全部功能,只是與 SCSS 相比是用的不同的表達方式在某些地方。

所以我們現在通常說的一般都是SCSS。

三.SCSS強大之處

我們說到SCSS增加了很多的功能,這也是SCSS的魅力所在,那麼我們今天就簡單瞭解一下SCSS強大的拓展功能有哪些吧。

1.嵌套規則

我們CSS是不能嵌套的,但是SCSS允許實現嵌套的,內層的樣式將他外層的選擇器作為父選擇器。也就是說:

.parent{

color:red;

.children{

line-height: 40px;

}

}

代表的CSS代碼就是:

.parent{

color:red;

}

.parent .children{

line-height: 40px;

}

可以看出通過嵌套功能我們能讓我們的代碼結果更加清晰,CSS結構更加容易管理,且避免了重複輸入父選擇器。

2.父選擇器&

在我們使用嵌套規則的時候,我們使用是很方便的,但是遇到要選擇父選擇器的時候,應該怎麼辦?比如當給某個元素設置hover樣式的時候。

也就是說使用如下:

.parent{

color:red;

&:hover .children{

background: pink;

}

}

代表的CSS代碼,就是如下的形式:

.parent{

color:red;

}

.parent:hover .children{

background: pink;

}

轉化後的 CSS 文件中&將被替換成嵌套外層的父選擇器。但是如果含有多層嵌套,那麼最外層的父選擇器會一層一層向下傳遞:

3.屬性嵌套

我們經常見到很多的屬性有相同的前綴,比如文本屬性,font-family, font-size, font-weight都以font作為屬性的前綴,為了方便我們使用,SASS允許將屬性嵌套在命名空間中。

例如:

.example{

font: {

family: “微軟雅黑”;

size: 30px;

weight: bold;

}

}

代表的CSS代碼就是:

.example{

font-family: “微軟雅黑”;

font-size: 30px;

font-weight: bold;

}

4.佔位符選擇器%foo

大家對於佔位符選擇器一定很陌生,但是大家一定聽過id選擇器,說類選擇器,他們的寫法分別是# 或者. ,那麼其實佔位符選擇器也就是一個符號而已,%代表的就是我們佔位符選擇器,但是他必須通過@extend指令調用。

但是具體的用法大家現在可以不用管,我們後期會更加詳細給大家講解,現在大家只用記住當佔位符選擇器單獨使用的時候,是不會編譯到CSS文件中。

四.SCSS魅力提煉

感受之後,有沒有覺得我們的SCSS非常的簡單,是我們懶人必備神器,且結構更加清晰,理解更加容易?那麼總的來說,SCSS美在如下幾點:

1.SCSS可以自定義輸出格式。

2.完全兼容CSS3,在CSS基礎上增加了變量、嵌套、混合等功能。

3.提供了控制指令。

4.通過函數可以進行顏色值與屬性值的運算。


分享到:


相關文章: