Sass新手指南

jopen 10年前發布 | 18K 次閱讀 前端技術 sass

什么是Sass?

Sass是一門非常優秀的CSS預處語言,他是由Hampton Catlin創立的。它可以減化CSS的工作流,使開發者更加容易開發,維護CSS樣式。

例如,你是否在特定的樣式表中查找和替換一個十六進制的顏色而煩惱?或者你正在尋找一個計算器為多欄布局的寬度計算而頭痛?(不用擔心,Sass能幫你解決這樣的煩惱)。

本文將介紹Sass的一些基本概念,比如說“變量”、“混合參數”、“嵌套”和“選擇器繼承”等。

Sass和CSS非常相似,但是在Sass中是沒有花括號({})和分號(;)的。

如下面的CSS:

#skyscraper_ad { 
  display: block; 
  width: 120px; 
  height: 600px; } 
#leaderboard_ad { 
  display: block; 
  width: 728px; 
  height: 90px; }

在Sass中,上面的CSS代碼你要寫成下面這樣:

#skyscraper_ad 
  display: block 
  width: 120px 
  height: 600px 
#leaderboard_ad 
  display: block 
  width: 728px 
  height: 90px

Sass使用兩個空格來定義嵌套的區別。

你現在看過了Sass是如何書寫的,接下來我們一起看一些Sass方面的介紹,讓Sass在你手中變得不再可怕。

變量(Variables)

在Sass中定義變量,是用“$”符號聲明,然后后面跟變量名稱。在這個例子中,定義變量“red”,在變量名后使用冒號(:),然后緊跟變量值:

$red: #ff4848

Sass還內置了函數功能,例如變暗(darken)和變亮(lighten),他們可以幫助你修改變量。

在這個例子中,段落要使用一個比“h1”標簽更深的紅色,就可以這樣使用:

$red: #ff4848$fontsize: 12px
h1
  color: $redp
  color: darken($red,10%)

你也可以在相同的變量上做加減運算的操作。如果我們想將顏色變黑,我們也可以在變量的基礎上減一個十六進制的顏色,例如“#101”。如果我們想把字號調大“10px”,我們也可以在字號的變量基礎上加上這個值。

/*加法和減法*/color: $red - #101font-size: $fontsize + 10px

嵌套(Nesting)

Sass有兩種嵌套規則:

選擇器嵌套

選擇器嵌套是Sass嵌套規則中的第一種。

Sass的嵌套類似于你的HTML嵌套:

$fontsize: 12px
.speaker
  .name
    font:
      weight: bold
      size: $fontsize + 10px
  .position
    font:
      size: $fontsize

如果你看了Sass生成的CSS,你可以看到“.name”嵌套在“.speaker”內,這里生成的CSS選擇器是“.speaker .name”。

.speaker .name {  font-weight: bold;
  font-size: 22px;}  .speaker .position {  font-size: 12px; }

屬性嵌套

屬性嵌套是Sass嵌套的第二種

相同前綴的屬性,你可以進行嵌套:

$fontsize: 12px
.speaker
  .name
    font:
      weight: bold
      size: $fontsize + 10px
  .position
    font:
      size: $fontsize

在上面的例子中,我們有一個“font:”,在新的一行增加兩個空格放置他的屬性(通常我們看到的是使用連字符“-”來連接)。

因此我們先寫“font:”屬性,然后斷行空兩格,寫“weight:”屬性,在CSS中就變成了“font-weight:”屬性。

.speaker .name {  font-weight: bold;
  font-size: 22px;}  .speaker .position {  font-size: 12px; }

所有連字符的選擇器都支持。

這種嵌套用來組織你的CSS結構是非常棒的,可以讓你不在寫一些重復的代碼。

混合(Mixins)

混合是Sass中另一個很優秀的特性。混合可以讓你定義一整塊的Sass代碼,甚至你可以給他們定義參數,更酷的是你還可以設置默認值。

使用關鍵詞“@mixin”來定義Sass的混合,你可以你自己的喜好定義一個混合的名稱。如果你需要設置一些參數,你還可以將參數設置到這些代碼片段中;如果你需要設置默認值,你也可以在混合的代碼片段中設置默認值。

調用混合代碼片段,可以使用Sass中的關鍵詞“@include”調用,并在其后面跟上你的混合代碼片段的名稱,你還可以使用括號,在里面設置一些參數。

來看一個簡單的例子:

@mixin border-radius($amount: 5px)
  -moz-border-radius: $amount
  -webkit-border-radius: $amount
  border-radius: $amounth1  @include border-radius(2px)
.speaker  @include border-radius

上面的Sass代碼將轉譯成下面的CSS代碼:

h1 {  -moz-border-radius: 2px;
  -webkit-border-radius: 2px;
  border-radius: 2px;}   .speaker {  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;}

我們給“h1”元素指定了一個特定的圓角值,但是并沒有給“.speaker”指定任何值,因此他將使用的是默認值“5px”。

選擇器繼承

選擇器的繼承可以讓你的選擇器繼承另一個選擇器的所有樣式風格,這是一個非常優秀的特性。

使用選擇器的繼承,要使用Sass的關鍵詞“@extend”,后而跟上你需要繼承的選擇器,那么這個選擇器就會繼承另一個選擇器的所有樣式。(當然他們是有繼承和被繼承的關系)

h1  border: 4px solid #ff9aa9.speaker  @extend h1
  border-width: 2px

上面的Sass代碼將轉譯成下面的CSS代碼:

h1,.speaker {  border: 4px solid #ff9aa9;}.speaker {  border-width: 2px;}

嘗試Sass

網上嘗試

如果你的本地電腦沒有安裝Sass,你可以在網上嘗試使用。

在轉譯之前,你需要選擇底部的“Indented Syntax”選項。

安裝

Sass是一個Ruby gem。如果你的本地已經安裝了Ruby gems,那么可以在你命令終端直接運行:

gem install sass

Sass也可以使用命令行工具將Sass文件轉譯成CSS文件。

你可以鍵入“sass --watch sass_folder:stylesheets_folder”,這個時候你的Sass文件(文件擴展名必須是.sass)stylesheets_folder就會把轉譯的樣式文件保存在“sass_folder”目錄,當然你的sass文件必須保存在這個文件目錄中。“--watch”選項的意思就是將這個目錄中的sass文件轉譯成樣式文件。

CSS轉換成Sass

在現有的項目中通過“sass-convert”使用sass。

在終端進入你的目錄中,鍵入“sass-convert --from css --to sass -R .”。將CSS轉換成Sass。其中“-R”表示遞歸,“.”表示當前目錄。

Scss

在這里我們只介紹了Sass的語法,然后還有一個新的名稱叫SCSS或者Sassy CSS。不同的是SCSS看起來更像CSS,但他也像Sass一樣具有變量、混合、嵌套和選擇器繼承等特性。

總結

在你組織和管理CSS時,Sass真的很優秀。還有個項目Compass,它在CSS框架中使用混合模式,而不是去修改你的HTML結構或者重新定義你的類名。

那你還在等什么呢?在你的下一個項目中就嘗試使用Sass吧。

譯者手語:整個翻譯依照原文線路進行,并在翻譯過程略加了個人對技術的理解。如果翻譯有不對之處,還煩請同行朋友指點。謝謝!

如需轉載煩請注明出處:

英文原文:http://blog.teamtreehouse.com/the-absolute-beginners-guide-to-sass

中文譯文:http://www.w3cplus.com/css/the-absolute-beginners-guide-to-sass.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!