搜尋
首頁php教程PHP开发Sass的基礎姿勢

Sass的基礎姿勢

Nov 23, 2016 am 10:17 AM
sass

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。