摘要:編譯之后結(jié)果混合作用繼承復(fù)用定義使用傳參可以對混合進(jìn)行傳遞參數(shù),和設(shè)置默認(rèn)值。占用中的位置,使用其樣式內(nèi)容。在模式下,進(jìn)行色彩運(yùn)算時(shí),要求通明度必須保持一致,否則無法進(jìn)行運(yùn)算。
Sass 是一個(gè)CSS 的擴(kuò)展,在語法CSS語法的基礎(chǔ)上,增加變量,嵌套規(guī)則, 混合,導(dǎo)入,函數(shù)等功能
對CSS進(jìn)行預(yù)處理的“中間語言”
.sass ,.scss
scss是對css的一種拓展,跟css很像,是開發(fā)中最常用的模式。
Sass從第三代開始,放棄了縮進(jìn)風(fēng)格,并且完全向下兼容普通的CSS代碼。被稱為scss
Node環(huán)境
sass app.sass app.css sass --watch app.sass:app.css // 自動(dòng)編譯更新CSS // 用來Sass命令來監(jiān)視某個(gè)Sass文件的改動(dòng) sass --style expanded app.scss app.css // 編譯的CSS格式更像是手寫的CSS樣式
工程化工具
Gulp插件:gulp-sass
var gulp = require("gulp"), sass = require("gulp-sass"), perfixer = require("gulp-autoprefixer"), minifyCss = require("gulp-minify-css"); // 編譯Sass 并添加CSS前綴 ,壓縮 gulp.task("sass", function () { gulp.src("*.sass") .pipe(sass()) // 編譯 .pipe(perfixer()) // 自動(dòng)改名 .pipe(minifyCss()) // 壓縮 .pipe(gulp.dest("dist")); }); gulp.task("default", ["sass"]);
Sass編譯后亂碼,在Sass文件第一行添加 @charset "UTF-8"。再進(jìn)行編譯。
變量在SASS中是一個(gè)塊級(jí)作用域,在塊內(nèi)部定義的變量,在外部訪問不到,只能在內(nèi)部訪問。
定義:
$w: 100px;
使用:
width: $w;
在SASS中,可以通過&符號(hào),在父選擇器內(nèi)部訪問父選擇器。
經(jīng)常使用在偽類元素或偽樣式中
div { width: $w; height: $h; background: cyan; &:hover { background: khaki; } }屬性嵌套
Sass允許CSS屬性嵌套,通常這種特性應(yīng)用于復(fù)合屬性。對屬性嵌套,編譯的時(shí)候,這些屬性會(huì)根據(jù)嵌套層級(jí)來編譯結(jié)果。
$w: 100px; div { width: $w; height: $w; background { color: pink; } border: { style: solid; top: { width: 5px; color: tan; } left: { width: 2px; color: khaki; } } }
編譯之后結(jié)果:
div { width: 100px; height: 100px; border-style: solid; border-top-width: 5px; border-top-color: tan; border-left-width: 2px; border-left-color: khaki; } div background { color: pink; }混合
作用:繼承復(fù)用
定義:@mixin names {}
使用: @include names
$w: 200px; $h: 100px; $color: cyan; @mixin sayBor { width: $w; height: $h; background: $color; } .head { @include sayBor; }傳參
可以對混合進(jìn)行傳遞參數(shù),和設(shè)置默認(rèn)值。
@mixin sayBor($w: 300) { width: $w; height: $h; background: $color; } .head { @include sayBor(500); }多參數(shù)的使用
通過...語法實(shí)現(xiàn)
@mixin sayBor( $shadow...) { width: $w; height: $h; background: $color; box-shadow: $shadow; } .head { @include sayBor(2px 2px 10px red); }繼承
實(shí)現(xiàn)對 class, 元素, id 或者自定義元素名稱樣式繼承。
div { width: 100px; } myDiv { border: 1px solid tan; } #demo { height: 200px; } .app { background: tan; } p { @extend div; @extend myDiv; @extend #demo; @extend .app; }mixin與作用域
在sass中,定義在作用域內(nèi)部的混合,在外部是無法訪問的,只能在作用域內(nèi)部訪問
在sass中,定義在作用域內(nèi)部的繼承,在作用域外部是可以訪問的,并且會(huì)繼承整個(gè)文件中所有的選擇器的樣式,不論該選擇器寫在文件任何位置。編譯之后會(huì)帶有繼承的層級(jí)選擇器。
span { .app { background: tan; } } p { @extend .app; // 以繼承的為父級(jí) }
編譯之后
span .app, span p { background: tan; }
比較Less 的Mixin 和 SASS的繼承:
Less中定義在作用域內(nèi)部的混合,在作用域外部是不能直接訪問。
SASS中定義在文件任何位置的繼承,都可以直接訪問。
比較Less的方法 和 SASS的Mixin
Less中定義在作用域內(nèi)部的方法,在作用域外部不能直接訪問,必須通過命名空間訪問。
SASS定義在作用域內(nèi)部的混合,只能在作用域內(nèi)部訪問,外部無法訪問。
編譯之后,樣式會(huì)刪除。占用SASS中的位置,使用其樣式內(nèi)容。
占位符,應(yīng)用于元素選擇器和自定義元素選擇器。
%div { width: 100px; } %myDiv { border: 1px solid tan; } #demo { height: 200px; } .app { background: tan; } p { @extend %div; @extend %myDiv; @extend #demo; @extend .app; }
編譯結(jié)果:
p { width: 100px; } p { border: 1px solid tan; } #demo, p { height: 200px; } .app, p { background: tan; }運(yùn)算
在sass中我們的運(yùn)算是可以包含單位,此時(shí)我們的運(yùn)算會(huì)對不同的單位做換算,通常默認(rèn)單位是px。
當(dāng)運(yùn)算時(shí),哪個(gè)單位在前面,得到結(jié)果就一哪個(gè)單位為最終單位。
在SASS中可以對CSS屬性值進(jìn)行運(yùn)算。
除法元算特殊,因?yàn)镃SS樣式中有 font 屬性樣式。
必須加上()
是變量或者函數(shù)返回的結(jié)果
除法是其它運(yùn)算表達(dá)式中的一部分。
$w: 100px; .box { width: $w; height: (100/2)px; // 盡量不要使用數(shù)字相除,編譯之后單位與數(shù)字之間會(huì)有空格 height: 100px+2px; font-size: round(5.5px)/2; padding: ($w/20)px; // 加上括號(hào)之后,不需要加單位,會(huì)補(bǔ)默認(rèn)單位,加上去變成 `px px` }色彩運(yùn)算
在16進(jìn)制的色彩模式中,進(jìn)行運(yùn)算時(shí),是對每一個(gè)通道色彩多帶帶運(yùn)算,每個(gè)通道大于255或者小于0時(shí)候不會(huì)影響其它的通道顏色值。
在rgba模式下,進(jìn)行色彩運(yùn)算時(shí),要求通明度必須保持一致,否則無法進(jìn)行運(yùn)算。
background: #948204 + #325; color: rgb(10, 20, 20) - rgb(22, 2, 8); border: 1px solid rgba(20, 2, 10, .4) * rgba(10, 34, 2, .4);
編譯之后:
background: #c7a459; color: #00120c; border: 1px solid rgba(200, 68, 20, 0.4);字符運(yùn)算
+:字符串拼接。
注意:沒有""來表示字符串
$cur: -drop; div { cursor: no + $cur; }插值
作用:動(dòng)態(tài)創(chuàng)建一些值
語法:border-#{$key}
@mixin arrow ( $dir: top, $w: 1px, $c: #fff, $pos: absolute ) { position: $pos; border: $w solid transparent; border-#{$dir}: $w solid $c; font-size: 0; }if語句
語法:
通過@if定義if語句
通過@else if 定義else if 語句
通過@else 定義 else 語句
使用關(guān)鍵字: or, and :表示 || 和 &&
@mixin arrow ( $dir: top, $w: 1px, $c: #fff, $h: $w, $pos: absolute ) { border: $w solid transparent; @if $dir == top or $dir == bottom { border-left-width: $h; border-right-width: $h; } @else { border-top-width: $h; border-right-width: $h; } position: $pos; border-#{$dir}: $w solid $c; font-size: 0; }for循環(huán)
語法: @for $i form strat through end {}
$i:循環(huán)變量
start: 起始值,包括自身
end:終止值,包括自身
.box { height: 30px; margin-bottom: 10px; } @for $i from 1 through 16 { .item-#{$i} { background: #101 * ($i-1); } }while循環(huán)
語法:@while 循環(huán)條件 {}
當(dāng)循環(huán)條件滿足時(shí),會(huì)執(zhí)行該循環(huán)
$i: 1; @while $i < 2 { .item-#{$i} { background: #111 * $i; } $i: $i + 2; }
$j: 1; @while $j < 21 { .col-lg-#{$i} { width: 100%/2 * $j; } $j: $j+1; }三元運(yùn)算符
語法:通過if關(guān)鍵字實(shí)現(xiàn)。if(條件, true結(jié)果, false結(jié)果)
$isColor: true; body { background: if( $isColor, green, blue ); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/111374.html
摘要:不過必須要先安裝,然后再安裝。淘寶鏡像安裝由于國內(nèi)網(wǎng)絡(luò)原因你懂的,導(dǎo)致存放在上面的資源文件間歇性連接失敗。嵌套可以進(jìn)行選擇器的嵌套,表示層級(jí)關(guān)系。重要注釋管理項(xiàng)目文件結(jié)構(gòu)預(yù)處理器的特點(diǎn)之一是可以把你的代碼分割成很多文件,而且不會(huì)影響性能。 Sass 是什么? showImg(https://segmentfault.com/img/bVqyKF); Sass 是 Syntactical...
摘要:同樣的在下安裝有多種方法。這樣的文件,命名規(guī)范是以下劃線開頭的,這樣的文件不會(huì)被編譯成文件。這個(gè)特性現(xiàn)在正被眾多開發(fā)者濫用。就是取值的一種特殊形式,符合特殊用法。函數(shù)名稱參數(shù)列表數(shù)據(jù)處理繼承允許一個(gè)選擇器,繼承另一個(gè)選擇器。 sass介紹 ? SASS是一種CSS的開發(fā)工具,提供了許多便利的寫法,大大節(jié)省了設(shè)計(jì)者的時(shí)間,使得CSS的開發(fā),變得簡單且可維護(hù)。 ? SASS的本...
摘要:同樣的在下安裝有多種方法。這樣的文件,命名規(guī)范是以下劃線開頭的,這樣的文件不會(huì)被編譯成文件。這個(gè)特性現(xiàn)在正被眾多開發(fā)者濫用。就是取值的一種特殊形式,符合特殊用法。函數(shù)名稱參數(shù)列表數(shù)據(jù)處理繼承允許一個(gè)選擇器,繼承另一個(gè)選擇器。 sass介紹 ? SASS是一種CSS的開發(fā)工具,提供了許多便利的寫法,大大節(jié)省了設(shè)計(jì)者的時(shí)間,使得CSS的開發(fā),變得簡單且可維護(hù)。 ? SASS的本...
摘要:同樣的在下安裝有多種方法。這樣的文件,命名規(guī)范是以下劃線開頭的,這樣的文件不會(huì)被編譯成文件。這個(gè)特性現(xiàn)在正被眾多開發(fā)者濫用。就是取值的一種特殊形式,符合特殊用法。函數(shù)名稱參數(shù)列表數(shù)據(jù)處理繼承允許一個(gè)選擇器,繼承另一個(gè)選擇器。 sass介紹 ? SASS是一種CSS的開發(fā)工具,提供了許多便利的寫法,大大節(jié)省了設(shè)計(jì)者的時(shí)間,使得CSS的開發(fā),變得簡單且可維護(hù)。 ? SASS的本...
摘要:未編譯樣式多繼承鏈?zhǔn)嚼^承占位選擇器編譯后樣式中使用聲明混合,可以傳遞參數(shù),參數(shù)名以符號(hào)開始,多個(gè)參數(shù)以逗號(hào)分開,也可以給參數(shù)設(shè)置默認(rèn)值。 初識(shí)Sass SASS簡介 sass是一種css預(yù)處理器,用專門的編程語言,進(jìn)行網(wǎng)頁樣式設(shè)計(jì),然后再編譯成正常的CSS文件。Sass是CSS3的擴(kuò)展,它增加了嵌套規(guī)則,變量,mixins,選擇器繼承等等。Sass生成格式良好的CSS,使樣式表更易于組...
閱讀 3562·2021-10-09 09:43
閱讀 6178·2021-09-07 10:15
閱讀 2762·2019-08-30 14:03
閱讀 3091·2019-08-29 11:01
閱讀 1727·2019-08-29 10:56
閱讀 1092·2019-08-28 17:52
閱讀 3510·2019-08-26 11:42
閱讀 2566·2019-08-26 10:33