Sass語法
在本章我們學SASS語法。SASS支持兩種語法,即SCSS和縮進語法。
SCSS(Sassy CSS)是CSS語法的擴展。這意味着每一個有效的CSS也是一個有效的SCSS語句。 SCSS使得更容易維護大型樣式表和可識別特定於供應商的語法和許多CSS。 SCSS文件的擴展爲.scss。
縮進- 這是舊的語法,有時只稱爲Sass。使用這種形式的語法CSS可以簡潔地寫。 SASS文件的擴展名爲.sass。
SASS縮進語法
SASS縮進語法或只是SASS替代基於SCSS的CSS語法 。
它採用縮進,而不是{和}分隔塊。
要分割語句,它使用新行,而不是分號(;)。
屬性聲明和選擇器必須放在單獨佔一行,聲明的{和}必須放在新行而且要縮進。
例如,請考慮以下SCSS代碼:
.myclass {
color= red;
font-size= 0.2em;
}
縮進語法是一個較舊的語法,這不建議在新的Sass文件中使用。如果使用此文件,它將在CSS文件中顯示的錯誤,因爲我們已經使用=代替:用於設置屬性和變量。
使用以下命令編譯上面的代碼:
sass --watch C:\ruby\lib\sass\style.scss:style.css
接下來,運行上面的命令,它會在style.css的文件中顯示錯誤信息,如下所示:
Error: Invalid CSS after " color= red": expected "{", was ";"
on line 2 of C:\ruby\lib\sass\style17.scss
1: .myclass {
2: color= red;
3: font-size= 0.2em;
4: }
SASS的語法差異
大多數CSS和SCSS語法完全在SCSS中工作。不過,也有一些差異會在下面的章節中解釋:
屬性語法
CSS屬性可以通過兩種方式聲明:
屬性聲明與CSS類似,但沒有分號(;)。
冒號(:) 的前面是每一個屬性的名稱。
比如,可以寫爲:
.myclass
:color red
:font-size 0.2em
以上兩種方法(屬性聲明沒有分號,冒號和前綴屬性名)可使用默認值。但是,只有一個屬性語法允許指定使用 :屬性語法 選項.
多行選擇器
在縮進語法,選擇器可以放在新行的逗號之後。
示例
下面的例子說明使用SCSS文件的多行選擇器:
<html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>多行選擇器 - www.yiibai.com</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
<h2>多行選擇器的實例</h2>
<p class="class1">Welcome to Yiibai Yiibai</p>
<p class="class2">SASS stands for Syntactically Awesome Stylesheet...</p>
</body>
</html>
下一步創建style.scss. 注意它的擴展名是:.scss
style.scss
.class1,
.class2{
color:red;
}
可以告訴SASS更新CSS,只要通過使用下面的命令SASS文件自動更新文件變化:
sass --watch C:\Ruby22-x64\style.scss:style.css
接着執行上面的命令,它會自動創建style.css文件,如下面的代碼:
所產生的style.css文件內容如下:
style.css
.class1,
.class2 {
color: red;
}
讓我們來執行以下步驟,看看上面的代碼如何工作:
保存上述HTML代碼到 multiline_selectors.html 文件中。
在瀏覽器中打開該HTML文件,輸出如下顯示。
註釋
註釋佔用整行,並附嵌套在它們所有的文字並且它們都是基於行的縮進語法。有關注釋的詳細信息, 請 link.
@import
SASS的@import指令可以寫帶/不帶引號。不像在SCSS必須使用引號。例如,在SCSS的@import指令可以用作:
@import "themes/blackforest";
@import "style.sass";
這可以寫成SASS爲:
@import themes/blackforest
@import fontstyle.sass
混合指令
SASS支持簡寫形式就像@mixin和@include指令。代替@mixin和@include,可以使用=和+字符需要更少的輸入,使代碼更簡單,更易於閱讀。
比如,可以寫混入指令爲:
=myclass
font-size: 14px;
p
+myclass
相當於下面:
@mixin myclass
font-size: 14px;
p
@include myclass
不推薦使用語法
SASS支持一些舊的語法。但是使用這種語法SASS是不推薦的。如果使用這種語法它將顯示警告,這些語法會在以後的版本中刪除。一些舊的語法在下表中列出。
S.N.
運算符和說明
1
=
它被用來代替:設置變量和屬性時SassScript的值。
2
||=
它被用來代替:每當分配一個變量的缺省值。
3
!
代替$,!用作變量前綴。當它被用來代替$時,功能將不會改變。