SASS

定制SCSS

boot重點(diǎn)手寫響應(yīng)式+柵格布局+SCSS

1.CSS有一些缺點(diǎn)

語法不夠強(qiáng)大,沒有變量和合理的代碼復(fù)用機(jī)制,導(dǎo)致代碼難以維護(hù)

我們要使用動(dòng)態(tài)樣式語言,賦予css新的特性,提高代碼的可維護(hù)性

常見的動(dòng)態(tài)樣式語言

1.scss/sass (scss兼容sass,scss的語法更接近c(diǎn)ss)

??boot4是使用scss生成的

2.stylus

3.Less

2.scss是什么

一款強(qiáng)化css的輔助工具

scss的語法和css的語法十分相似

scss給css添加了變量,嵌套,混合,導(dǎo)入,函數(shù)等高級(jí)功能

這些高級(jí)功能,讓css更加的強(qiáng)大與優(yōu)雅

使用scss要注意

瀏覽器,不能執(zhí)行scss文件,

需要在后臺(tái),把scss文件,轉(zhuǎn)換成css文件,才能讓瀏覽器解析運(yùn)行

3.scss的使用

①安裝

1.要求nodejs解釋器,v8.11以上

??如果安裝scss64位,需要nodejs v10.01以上

2.在線安裝 npm install -g node-sass

3.無網(wǎng)安裝,把解壓文件,復(fù)制進(jìn)nodejs安裝文件夾即可

4.檢驗(yàn)scss版本(是否安裝成功)?node-sass ?-v

②scss文件轉(zhuǎn)換成css

1.單文件轉(zhuǎn)換

node-sass ?要轉(zhuǎn)換的scss文件???轉(zhuǎn)換之后的css文件

node-sass ?scss/01.scss ??css/01.css

2.多文件轉(zhuǎn)換

node-sass ?scss文件夾???-o ??css文件夾

node-sass ?scss ?-o ?css

3.單文件監(jiān)聽

node-sass -w要轉(zhuǎn)換的scss文件???轉(zhuǎn)換之后的css文件

node-sass -w??scss/01.scss ?css/01.css

4.多文件監(jiān)聽

node-sass ?-w ?scss文件夾名稱 ?-o ??css文件夾名稱

node-sass ?-w ?scss ?-o ?css

4.SCSS基礎(chǔ)語法

①變量

$開頭,代表聲明變量

:代表賦值

$jd_red:#f10215;

變量名稱,可以包括,字符,數(shù)字,-?,_

不能以數(shù)字開頭,

規(guī)則基本與css選擇器命名規(guī)則相同

注意:

1.在{}內(nèi)部聲明的變量,只能在{}內(nèi)部使用,外部無效

??如果變量聲明在{}外,當(dāng)前scss文件都能使用

2.!default規(guī)則:如果此變量在之前已經(jīng)聲明賦值了,那么就使用之前的值

?如果之前沒有聲明賦值,就使用現(xiàn)在的值

②嵌套

1.根據(jù)html代碼的結(jié)構(gòu),寫選擇器

#content{

??color:#000;

??.top{

????color:#111;

????h4{color:#333;}

????p{color:#444;}

??}

??.bottom{color:#222;}

}

2.偽類嵌套,需要在偽類前,添加&占位符,不然會(huì)多一個(gè)空格

div{

??color:#111;

??&:hover{color:#222;}

}

3.群組選擇器嵌套

nav,div,#content,ul{

??a{color:#112;}

}

4.屬性嵌套

div{

??border:{style:solid;width:10px;color:#f00;}

}

練習(xí)

一個(gè)200*200px(變量)的div,紅色背景(變量)

鼠標(biāo)懸停(嵌套),過渡(嵌套)到黃色背景,且變?yōu)閳A形(變量)

③導(dǎo)入

局部scss文件,下劃線開頭的scss,叫局部scss文件

特點(diǎn),不會(huì)被轉(zhuǎn)換成css文件

如何使用

在全局scss文件中引入

@import "局部scss文件名稱" 注意,不要下劃線,不要后綴

十分有利于css項(xiàng)目管理

局部scss中的變量,可以在引入他的全局scss中使用

④混合器

把多個(gè)選擇器,都會(huì)使用的樣式,封裝進(jìn)一個(gè)混合器

然后在需要使用的時(shí)候,調(diào)用混合器

聲明

@mixin 混合器名稱(形參1,形參2....){樣式}

調(diào)用

@include 混合器名稱(實(shí)參1,實(shí)參2...);

@mixin bg_linear($angle,$color1,$color2){??background:-webkit-linear-gradient($angle,$color1,$color2);??background:-ms-linear-gradient($angle,$color1,$color2);??background:-moz-linear-gradient($angle,$color1,$color2);??background:-o-linear-gradient($angle,$color1,$color2);}h2{@include bg_linear(right,#ff0,#0ff)}

經(jīng)常用于大量的樣式重用

???????用于css?hack

⑤繼承

一個(gè)選擇器,繼承另外一個(gè)選擇器所有的樣式

在子選擇器中,使用關(guān)鍵字@extend 父選擇器

可以把父選擇器的所有樣式,給子選擇器使用

div{box-shadow: 0px 0px 0px 0px #f00;}

p{

??color:#111;

??@extend div;

}

⑥運(yùn)算,加減乘除模

+?有連接字符串的功能

用帶引號(hào)的字符串?+?不帶引號(hào),結(jié)果帶引號(hào)

用不帶引號(hào)的字符串?+?帶引號(hào)的,結(jié)果不帶引號(hào)

-?是可以放在變量名稱中的

由于轉(zhuǎn)換的時(shí)候,有可能會(huì)把-認(rèn)為是變量的一部分

所以,在使用減法的時(shí)候,減號(hào)前后加空格

/ scss中,/還有分割符的意思

在以下情況,會(huì)被判定為除法

1.如果運(yùn)算符兩邊,有變量或者函數(shù)的返回值,認(rèn)為是除法

width: $width/2;

2.被()包裹,認(rèn)為是除法

height:(500px/2);

3.除法運(yùn)算式,是其它算術(shù)表達(dá)式的一部分,認(rèn)為是除法

5px+8px/2px;

scss會(huì)在不同單位間,自動(dòng)轉(zhuǎn)換,前提這個(gè)單位能轉(zhuǎn)

相對(duì)單位rem ?em ?% 不能轉(zhuǎn)換

width:1px+1in+1pt+1cm+1mm;這些絕對(duì)可以自動(dòng)轉(zhuǎn)換

scss插值運(yùn)算 ?

content:"liangliang ate #{50+20} baozis"; ??

顏色運(yùn)算,分段運(yùn)算

#112233+#445566 ?紅+紅?綠+綠 藍(lán)+藍(lán)

結(jié)果#557799

rgba的運(yùn)算,需要alpha相等才能運(yùn)算

⑦函數(shù)

scss定義了很多函數(shù),有些函數(shù)可以在css中直接使用

rgba()

hsl(hue,saturation,lightness)

hue:色調(diào)??取值0~360 0~120 120~240 240~360 ?3個(gè)色段

saturation飽和度??取值0.0%~100%

lightness 亮度????取值0.0%~100%

數(shù)學(xué)函數(shù)

round($val) ?四舍五入

floor($val) ??向下取整

ceil($val) ???向上取整

min($v1,$v2,.....);

max($v1,$v2,.....);

random() ???隨機(jī)數(shù)

字符串函數(shù)

unquote($val)?去掉雙引號(hào)

quote($val) ???添加雙引號(hào)

to_upper_case("abc") ?轉(zhuǎn)大寫

to_lower_case("ABXC") 轉(zhuǎn)小寫

自定義函數(shù)

@function get-width($n,$m){

??@return $n*$m;

}

function和return關(guān)鍵字,添加@

參數(shù)要有$

⑧指令(if-else)

@if(){}

@else if(){}

@else{}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、LESS的官網(wǎng):http://lesscss.org 2、Sass官網(wǎng)地址:http://sass-lang....
    Howie223閱讀 3,940評(píng)論 0 5
  • 一、參考文獻(xiàn) 安裝Sass和Compasshttps://www.sass.hk/install/[https:/...
    致自己_cb38閱讀 3,298評(píng)論 1 1
  • 本文為本人略讀官網(wǎng)文檔后的大略筆記,實(shí)在不適合他人閱讀 Sass(Syntactically Awesome St...
    平安喜樂698閱讀 411評(píng)論 0 1
  • 什么是CSS預(yù)處理器 CSS 預(yù)處理器定義了一種新的語言,其基本思想是,用一種專門的編程語言,為 CSS 增加了一...
    青青玉立閱讀 1,258評(píng)論 0 0
  • 柳暗花明又一村 上班20年的職業(yè)倦怠,各種學(xué)習(xí)、培訓(xùn),收獲甚微。現(xiàn)在也就適應(yīng)了,慢節(jié)奏的生活和工作。只到遇見青椒學(xué)...
    陜縣2322趙月梅閱讀 263評(píng)論 0 3

友情鏈接更多精彩內(nèi)容