首頁 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

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24