首頁  >  文章  >  web前端  >  Sass學習

Sass學習

高洛峰
高洛峰原創
2016-11-23 15:19:081593瀏覽

一、什麼是SASS

SASS是一中CSS的開發工具,提供了許多方便的寫法,大大節約了設計者們的時間,使得CSS的開發,變得簡單和可維護。本文總結了SASS的主要方法。我們的目標是,有了這篇文章,日常的一般使用就不需要看官方文件了。

二、安裝和使用

2.1  安裝

SASS是Ruby語言寫的,但是兩者的語法沒有關係。不明白Ruby,照樣使用,只要先安裝Ruby,在安裝SASS,假設你已經安裝RUby,接著指令列輸入下面的指令:

   gem  insrall  sass  

然後就可以使用了。

2.2使用

SASS文件就是普通的文字文件,裡面可以直接使用CSS語法。後綴名是.Scss,意思是Sassy CSS。下面的命令,可以在螢幕上顯示.scss檔轉換為css的程式碼。 (假設文件名稱為test)

   sass  test.scss

如果要將顯示結果儲存文件,後面再接一個.css檔案名稱。

   sass  test.scss test.css

SASS提供四個程式風格的選項

*nested:嵌套縮排的css程式碼,他是預設值。

*expanded:沒有縮排的,擴充的css程式碼。

*compact:簡潔格式的css程式碼。

*compressed:壓縮後的css程式碼

生產環境當中,一般使用最後一個選項

sass  ---style commpressed test.sass test.css

他也可以讓SASSASS檔案有變動,就自動產生編譯後的版本。

//watch a file

sass  --watch input.scss

//watch a directory

sass --watch app/sass:public/stylesheets

SASS的官方網站,提供了一個線上轉換器,提供了一個線上轉換器你可以在那裡運行下面的各種例子

三、基本用法

3.1變量

SASS允許使用變量,所以變量用$開頭。

$blue : #1875e7;

div{

color :$blue

}

如果變數需要鑲嵌在字串中,就必須寫在#{}之中。

$side : left;

.rounded{

border-#{side}-radius:5px;

}

3.2 (14px/2);

top : 50px + 100px;

right : $var * 10%;

}

3.3嵌套

S

}

3.3嵌套

S

}。例如下面的CSS程式碼

div h1{

color : red;

}

可以寫成

div{

? ,例如border-color屬性,可以寫成

p{

border:{

color:red;

}

     }

}

     }

號必須注意假號。

在巢狀程式碼內,可以使用&引用父元素。例如border-color屬性,可以寫成:

a{

&:hover{ color :#ffb3ff; }

}

3.4註解SAS

S共有兩種註解風格。

標準的CSS註解/* comment */,會保留編譯後的檔案。

單行註解//comment,只保留在SASS原始檔中,編譯後省略。

在/*後面加一個感嘆號,”表示這種是重要註釋”,即使是壓縮模式編譯,也會保留這行註釋 ,通常可以用於聲明版權信息。

/*!

重要註解

*/

四、程式碼的重用

4.1 繼承

SASS允許一個選擇器,例如另一個選擇器,例如現有class1:01

.

border:1px solid #ddd;

}

class2要繼承class1,就要使用@extend指令:

.class{

 

@extend.class1; }

4.2 Mixin

Mixin有點像C語言的宏(macro),是可以重複使用的程式碼區塊。

使用@mixin指令,定義一個程式碼區塊。

@mixin left{

float:left;

margin-left:10px

}

使用@include-g;強大之處,在於可以指定參數和預設值。

@mimin left($value:10px){

float:left;

Margin-right:$value

}

使用的時候,依需求加入參數

);

}

下面是一個mixin的實例,用來產生瀏覽器前綴。

@mixin rounded($vert,$horz,$radius:10px){

border-#{$vert}-#{$horz}-radius:$radius;

-moz-border-radius-{# $vert}#{$horz}:$radius;

-webkit-border-#{$vert}-#{$horz}-radius:$radius;

}

使用的時候,可以像下面這樣調用

#navbar li{ @include rounded(top,left);}

#navbar li{ @include rounded(top,left);}

#navbar li{ @include rounded(top,left);}

#navbar li{ @include rounded(top,left);}

#navbar li{ @include rounded(top,left);}

#footer{ @include rounded(top,left,5px);}

4.3顏色函數

顏色。

lighten(#cc3,10%)//#d6d65c

darken(#cc3,10%)//#a3a329

grayscale(#cc3)//#808080

grayscale(#cc3)//#808080

4.4插入檔案

@import 指令,用來插入外部檔案。

@import “path/filename.scss”;

如果插入的是.css文件,則等同於css的import指令。

@import “foo.css”;

五、進階用法

5.1 條件語句

@if可以用來判斷;

p{

@if 1+1 ==2{border:1px solid ;}

2px dotted;}

}

配對的還有@else指令:

@if lightness($color)>30%{

 

}@else{

SASS支援for循環:

@for $i from 1 to 10 {

.border-#{$i}{

Border:#{$i}px solid blue;

}

}

while循環:

$i:6;

@while $i >0{

.item-#{$i}{width:2em *$i}

$i:$i-2

}

}

each指令,作用與for類似:

@each $member in a,b,c,d{

.#{$member}{

Background-image:url(“image/#{$member}. jpg”);

}

}

5.3自訂函數

SASS允許使用者編寫自己的函數。

@function double($n){

@return $n*2;

}

#sidebar{

Width:double(5px);
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn