首頁  >  文章  >  web前端  >  Sass的基礎姿勢

Sass的基礎姿勢

高洛峰
高洛峰原創
2016-10-15 10:24:021084瀏覽

SASS是什麼

傳統的CSS是一種單純的描述性樣式文件,然而SASS可以對CSS進行預先編譯處理。 在SASS原始碼中可以使用變數、函數、繼承等動態語言的特性,並且可以編譯成CSS檔案。

安裝與使用

安裝

由於sass是ruby寫的,所以想要使用sass就需要安裝ruby環境。然後再使用gem安裝sass。 輸入下面的指令進行安裝sass:

gem install sass

可以使用sass -v指令查看sass的版本。

使用

新建一個後綴名為.scss源碼文件,就可以編輯sass源碼了。 然後使用下面的命令可以將原始碼檔案編譯轉換為css並顯示在螢幕上。

sass test.scss

也可以在後面加上後綴名為.css的檔名,就可以在目前目錄產生css檔。如下:

sass test.scss test.css

註:.sass與.scss這兩種的區別在於.sass檔案對程式碼的排版有著非常嚴格的要求,而且沒有大括號,沒有分號。

指令參數

--style:編譯風格 sass提供四種編譯風格選項:

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

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

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

compressed:壓縮後的css程式碼。

e.g.

sass test.scss test.css --style compressed

--watch:監聽檔案變動 sass可以監聽原始檔變動,並自動產生編譯後的版本。 e.g.

//监听单个文件
sass --watch test.scss:test.css
//监听目录
sass --watch sassFileDirectory:cssFileDirectory

變數

SASS使用$開頭定義變數

$white:#FFFFFF;
body{
    color: $white;
}

如果需要將變數插入字串中,需要將變數寫在#{}中

$imgUrl:"../img/test.png";
body{
    background-image: url(#{$imgUrl});
}

運算

巢狀

SASS允許巢狀規則

$min-left:10px;
body{
    margin-left:$min-left+20px;
}

編譯成CSS樣式為:

div{
    //选择器嵌套
    p{
        color:#FFFFFF;
    }
    //属性嵌套
    margin:{
        left:10px;
    }
    //伪类嵌套
    &:hover{
        color:#F4F4F4;
    }
}

繼承

SASS可以使用@extend繼承於另一個選擇器。

.page{    background-color:#F7F7F7;
}.div1{
    @extend .page;    color:#FFFFFF;
}

Mixin

SASS提供Mixin类似“函数”的重用代码块。 使用@mixin定义样式代码块,然后使用@include调用该样式。 不同于@extend的是Mixin定义样式不会编译输出在CSS样式中,并且可以指定参数和默认值。

//不带参数的mixin@mixin page{    background-color:#F7F7F7;
}//带参数的mixin@mixin setDefMargin($left, $right, $bottom: 10px,$top: 10px){    margin:$top $right $bottom $left;
}.test{
    @include page;
    @include setDefMargin(20px,30px);    color:#FFFFFF;
}

需要注意的是,必须先定义没有默认值的参数,后指定有默认值的参数。

Import

sass可以使用@import语句,来引用指定的外部文件。

//引入scss文件
@import "variable.scss";
//引入css样式文件
@import "style.css";

条件语句

使用@if和@else语句可以用来做条件判断

$min-margin: 10px;
@mixin init-margin($left){    //判断传入的参数是否大于最小值
    @if $left > $min-margin {        margin-left: $left;
    } @else {        margin-left: $min-margin;
    }
}body {
    @include init-margin(5px);
}

循环语句

FOR循环

使用@for来定义循环体。 $i表示循环变量,from 后面跟上开始数值,to后面跟结束数值。

@for $i from 1 to 20 {
    .page-index#{$i} {
        color: #FFFFFF;
    }
}

WHILE循环

使用@while定义循环体,后面跟循环条件。

//循环变量$i: 2;
@while $i<10{    page-index#{$i} {
        color: #F4F4F4;
    }
    $i=$i=1;
}

自定义函数

使用@function语句可以自定义函数,@return表示函数的返回值

@function calcNumber($num) {
    @return $num+10;
}body {    margin-left: calcNumber(20px);
}


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