CSS預處理器Sass -- Sass、Less、Stylus比較(2)
前言:本節主要學習下Sass、Less、Stylus在使用方面的異同。
1.環境安裝配置區別。
<1>Sass環境配置?
Sass的底層是Ruby語言開發的,安裝Sass前提需要先安裝Ruby,安裝過程參考 https://www.cnblogs.com/diweikang/p/9609825.html
<2>Less環境配置?
瀏覽器端用法:
<1>、引入Less文件 <link rel="stylesheet/less" type="text/css" href="styles.less" />
<2>、使用JS文件編譯,執行<
node安裝:運行命令 npm install -g less,然後使用require(‘less‘)引入項目中使用。
參考Less官網:http://lesscss.cn/
<3>Stylus的安裝?
前提先安裝node,命令行運行npm install -g stylus,然後使用require(‘stylus‘)引入項目中使用。
2.寫法格式異同。
<1>Sass的寫法格式
縮進格式:舊版本寫法,無需大括號和分號結尾。
h1
color: red
a
color: green
兼容CSS的寫法:大括號包含,同時必須分號結尾
h1 { color: red; a { color: green; } }
<2>Less的寫法格式?
Less同樣是兼容CSS的寫法,同Sass的第二種寫法。
h1 { color: red; a { color: green; } }
<3>Stylus的寫法格式
Stylus的寫法更靈活:
縮進格式:
h1
color: red
a
color: green
兼容CSS格式:
h1 { color: red; a { color: green; } }
怪異寫法:
h1
color red
a
color green
註意:三種寫法可以混用。
3.變量聲明異同
<1>Sass的變量聲明?
Sass變量聲明是以$符號開頭的。
$colorRed: red; $colorGreen: green; h1 { color: $colorRed; a { color: $colorGreen; } }
<2>Less的變量聲明?
Less變量聲明是以@符號開頭的。
@colorRed: red; @colorGreen: green; h1 { color: @colorRed; a { color: @colorGreen; } }
<3>Stylus的變量聲明?
Stylus變量聲明可以以任意字符開頭,沒有過多的限制。
$colorRed: red; //可以以$符號開頭 colorGreen: green; //可以直接寫 h1 { color: $colorRed; a { color: colorGreen; } }
4.混入的異同
<1>Sass的混入?
以@開頭,其中的參數便令使用$符號開頭。
@mixin alert($color: red) { color: $color; }
<2>Less的混入?
以.開頭,其中的參數便令使用@符號開頭。
.alert(@color: red) { color: @color; }
<3>Stylus的混入?
直接是函數名,參數就是正常的函數命名形式。
alert(colorArg: red) { color: colorArg; }
5.繼承的異同
<1>Sass的繼承?
使用@extend實現元素之間樣式的繼承。
.block { margin: 10px; padding: 5px; } p { @extend .block; color: red; }
<2>Less的繼承?
less中繼承無需使用@extend,直接嵌套其他元素的樣式。
.block { margin: 10px; padding: 5px; } p { .block; color: red; }
<3>Stylus的繼承?
stylus實現繼承方式和sass一樣,都是使用@extend實現。
.block { margin: 10px; padding: 5px; } p { @extend .block; color: red; }
總結:這節學習Sass、less、stylus之間的基本區別,主要是書寫格式、變量定義、混入、繼承之間的區別,其他更多的區別需要更多的學習。
註意:變量、混合、嵌套、繼承、顏色函數稱為CSS預處理器的五大特性。
CSS預處理器Sass -- Sass、Less、Stylus比較(2)