關於Sass

簡介css

SASS 是一款強化 CSS 的輔助工具,它在 CSS 語法的基礎上增長了變量 (variables)、嵌套 (nested rules)、混合 (mixins)、導入 (inline imports) 等高級功能,這些拓展令 CSS 更增強大與優雅。
使用 Sass 以及 Sass 的樣式庫(如 [Compass](http://compass-style.org/))有助於更好地組織管理樣式文件,以及更高效地開發項目。
具體可參考中文官網:https://www.sass.hk/

SASS的安裝node

先安裝Ruby(下載網址:http://www.ruby-lang.org/zh_cn/downloads/)
安裝完成後在cmd輸入命令:gem install sass
便可安裝成功

SASS的四種編譯風格gulp

nested:嵌套縮進的css代碼,其爲默認值
expanded:沒有縮進的,擴展的css代碼
compact:簡潔格式的css代碼
compressed:壓縮後的css代碼

SASS的一些終端命令sass

查看sass文件的css內容,在cmd中輸入命令:sass 文件名.scss
把sass文件轉爲css文件,在cmd中輸入命令:sass 文件名.scss 轉換後的文件名.css
               (若想以某種風格壓縮):sass --style 風格名稱 xxx.scss xxx.css
監聽文件,一旦源文件有變更,會自動生成編譯後的版本。在cmd中輸入命令:sass --watch xxx.scss:xxx.css

更多命令的用法可經過輸入命令sass --help來獲取幫助。

也可以使用nodejs下的gulp模塊來編譯sass

SASS的使用ruby

sass的後綴文件名爲.scss

定義變量:$變量名:$red:red;
若變量須要嵌入在字符串中(組合形式),則必須寫在#{}中:$red:red; .border{border:1px solid #{$red}}

計算功能:能夠是兩個數值運算,也能夠是變量間的運算(兩個變量不能相加)
.border{margin:20px+30px; padding:#{$border*$border}px;}

複用功能(繼承):一個選擇器繼承另外一個選擇器
第一種:[@extend](https://my.oschina.net/extend) xxx 
.a1{color:blue;}
.a2{[@extend](https://my.oschina.net/extend) .a1; font-size:$num+px}
第二種:定義一個mixin塊,是能夠重用的代碼塊
        [@mixin](https://my.oschina.net/u/3471415) b($b,$f){border:$b+px solid red;font-size:$f+px;}
        .a3{[@include](https://my.oschina.net/JLXINAO) b(2,13);}
        
插入文件:使用import命令來插入外部文件
[@import](https://my.oschina.net/u/3201731) 'xxx.scss'; (若插入是scss文件則把編譯後的代碼文件插入其中。若插入是css文件,則至關於@import url(xxx.css)命令)

條件語句:@if / @if-else / @if-else if
.a4{
    @if $num==5{color:blue;}
    @else if $num==4{color:red;}
 }
 
循環語句:@for / @while / @each
@for:
@for $i from 1 to 10{
    .a5_img#{$i}{
        background-image:url('img#{$i}.png');
    }
}
@while:
$j:9;
@while $j>0{
    .a6_img${$j}{
        background-image:url('img#{$i}.png');
    }
    $j:$j-1;
}
@each:
@each $item in 1,2,3,4,5{
    .a6_img#{$item}{
        background-image:url('img#{$item}.png');
    }
}

函數:@function
@function a7($r){
    @return $r*2; 
}
.a8{
    border:#{a7(2)}px solid #000;
}

選擇器(標籤)嵌套:
div{
    h1{
        color:red;
    }
}
也能夠用'&'表明嵌套規則外層的父選擇器
a {
    &:hover { text-decoration: underline; }
    body.firefox & { font-weight: normal; }
}

屬性嵌套:(便於管理同一類控制的屬性)
a{
    font: {
        family: fantasy;
        size: 30em;
        weight: bold;
    }
}

插值語句 #{}:
$name: foo;
$attr: border;
p.#{$name} {
    #{$attr}-color: blue;
}
相關文章
相關標籤/搜索