亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue腳手架中配置Sass的方法

2019-11-19 14:35:52
字體:
來源:轉載
供稿:網友

世界上最成熟、最穩定、最強大的專業級CSS擴展語言!

兼容CSS
Sass完全兼容所有版本的CSS。我們對此嚴格把控,所以你可以無縫地使用任何可用的CSS庫。

特性豐富
Sass擁有比其他任何CSS擴展語言更多的功能和特性。Sass核心團隊不懈努力,一直使其保持領先地位。

成熟
Sass已經經過其核心團隊超過8年的精心打造。

行業認可
一次又一次地,行業把Sass作為首選CSS擴展語言。

社區龐大
數家科技企業和成百上千名開發者為Sass提供支持。

框架
有無數的框架使用Sass構建。比如Compass,Bourbon,和Susy。

我是在vue腳手架中安裝的

1 安裝

npm install --save-dev sass-loader//sass-loader依賴于node-sassnpm install --save-dev node-sass

2 配置: 在build文件夾下的webpack.base.conf.js的rules里面添加配置

{ test: //.sass$/, loaders: ['style', 'css', 'sass']}// 不知道為什么我配置完就打包不了, 不配置就是好用的

3 在APP.vue中修改style標簽

<style lang="scss">

4 使用

(1) 變量

1-1) 使用變量

sass讓人們受益的一個重要特性就是它為css引入了變量。你可以把反復使用的css屬性值 定義成變量,然后通過變量名來引用它們,而無需重復書寫這一屬性值。或者,對于僅使用過一 次的屬性值,你可以賦予其一個易懂的變量名,讓人一眼就知道這個屬性值的用途。

sass使用$符號來標識變量(老版本的sass使用!來標識變量。改成$是多半因為!highlight-color看起來太丑了。)

1-2) 變量聲明

$back: red#app color: $back// 變量聲明也分為全局變量和局部變量 // 這樣也是好用的$highlight-color: #F90;$highlight-border: 1px solid $highlight-color;.selected { border: $highlight-border;}//編譯后.selected { border: 1px solid #F90;}

1-3) 變量命名

在sass中使用-和_其實是一樣的 例如$link-color和$link_color其實指向的是同一個變量。

$link-color: blue;a { color: $link_color;}//編譯后a { color: blue;}

(2) 嵌套css規則

css中重復寫選擇器是非常惱人的。如果要寫一大串指向頁面中同一塊的樣式時,往往需要 一遍又一遍地寫同一個ID:

#content article h1 { color: #333 }#content article p { margin-bottom: 1.4em }#content aside { background-color: #EEE }

像這種情況,sass可以讓你只寫一遍,且使樣式可讀性更高。在Sass中,你可以像俄羅斯套娃那樣在規則塊中嵌套規則塊。sass在輸出css時會幫你把這些嵌套規則處理好,避免你的重復書寫。

#content { article { h1 { color: #333 } p { margin-bottom: 1.4em } } aside { background-color: #EEE }} /* 編譯后 */#content article h1 { color: #333 }#content article p { margin-bottom: 1.4em }#content aside { background-color: #EEE }

(2-1) 父選擇器的標識符&;

使用后代選擇器和為了偽類的時候可能就是比較麻煩了 不知道怎么寫。這個時候&就派上用場了

article a { color: blue; &:hover { color: red }}// 編譯后// 其實&相當于是父級article a { color: blue }article a:hover { color: red }

(2-2) 群組選擇器的嵌套;

在處理群組的時候只需要用,分割就好了,就能完美的解析不用內么麻煩

.container { h1, h2, h3 {margin-bottom: .8em}}<!--編譯后-->.container h1 {margin-bottom: .8em}.container h2 {margin-bottom: .8em}.container h3 {margin-bottom: .8em}

這種也是一樣的

nav, aside { a {color: blue}}//編譯后nav a, aside a {color: blue}

(2-3) 子組合選擇器和同層組合選擇器:>、+和~;

上邊這三個組合選擇器必須和其他選擇器配合使用,以指定瀏覽器僅選擇某種特定上下文中的元素。

article { // 同層全體組合選擇器 ~ article { border-top: 1px dashed #ccc } // 直接子元素 > section { background: #eee } dl > { dt { color: #333 } dd { color: #555 } } // 同層相鄰組合選擇器 nav + & { margin-top: 0 }}

(2-4) 嵌套屬性;

在sass中,除了CSS選擇器,屬性也可以進行嵌套。盡管編寫屬性涉及的重復不像編寫選擇器那么糟糕,但是要反復寫border-styleborder-widthborder-color以及border-*等也是非常煩人的。在sass中,你只需敲寫一遍border:

nav { border: { style: solid; width: 1px; color: #ccc; }}// 編譯后nav { border-style: solid; border-width: 1px; border-color: #ccc;}

你甚至還可以這樣寫

nav { border: 1px solid #ccc { left: 0px; right: 0px; }}// 編譯后nav { border: 1px solid #ccc; border-left: 0px; border-right: 0px;}

3 導入SASS文件;

css有一個特別不常用的特性,即@import規則,它允許在一個css文件中導入其他css文件。然而,后果是只有執行到@import時,瀏覽器才會去下載其他css文件,這導致頁面加載起來特別慢。

sass也有一個@import規則,但不同的是,sass的@import規則在生成css文件時就把相關文件導入進來。這意味著所有相關的樣式被歸納到了同一個css文件中,而無需發起額外的下載請求。

4 默認變量值

一般情況下,你反復聲明一個變量,只有最后一處聲明有效且它會覆蓋前邊的值。舉例說明:

$link-color: blue;$link-color: red;a {color: $link-color; // red}

但是你不想這種情況你可以使用sass的!default標簽可以實現這個目的。它很像css屬性中!important標簽的對立面,不同的是!default用于變量,含義是:如果這個變量被聲明賦值了,那就用它聲明的值,否則就用這個默認值。

5 注釋

body { color: #333; // 這種注釋內容不會出現在生成的css文件中 padding: 0; /* 這種注釋內容會出現在生成的css文件中 */}

6 混合器

如果你的整個網站中有幾處小小的樣式類似(例如一致的顏色和字體),那么使用變量來統一處理這種情況是非常不錯的選擇。但是當你的樣式變得越來越復雜,你需要大段大段的重用樣式的代碼,獨立的變量就沒辦法應付這種情況了。你可以通過sass的混合器實現大段樣式的重用。

混合器使用@mixin標識符定義。看上去很像其他的CSS @標識符,比如說@media或者@font-face。這個標識符給一大段樣式賦予一個名字,這樣你就可以輕易地通過引用這個名字重用這段樣式。下邊的這段sass代碼,定義了一個非常簡單的混合器,目的是添加跨瀏覽器的圓角邊框。

@mixin rounded-corners { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px;}

然后就可以在你的樣式表中通過@include來使用這個混合器,放在你希望的任何地方。@include調用會把混合器中的所有樣式提取出來放在@include被調用的地方。如果像下邊這樣寫:

notice { background-color: green; border: 2px solid #00aa00; @include rounded-corners;}//sass最終生成:// 編譯后.notice { background-color: green; border: 2px solid #00aa00; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px;}

混合器太好用了,一不小心你可能會過度使用。大量的重用可能會導致生成的樣式表過大,導致加載緩慢。所以,首先我們將討論混合器的使用場景,避免濫用。

(6-1)給混合器傳參;

混合器并不一定總得生成相同的樣式。可以通過在@include混合器時給混合器傳參,來定制混合器生成的精確樣式。當@include混合器時,參數其實就是可以賦值給css屬性值的變量。如果你寫過JavaScript,這種方式跟JavaScript的function很像:

@mixin link-colors($normal, $hover, $visited) { color: $normal; &:hover { color: $hover; } &:visited { color: $visited; }}

當混合器被@include時,你可以把它當作一個css函數來傳參。如果你像下邊這樣寫:

a { @include link-colors(blue, red, green);}//Sass最終生成的是:a { color: blue; }a:hover { color: red; }a:visited { color: green; }

其實@mixin 的方法還有很多 可以官網查看

7 使用選擇器繼承來精簡CSS;

使用sass的時候,最后一個減少重復的主要特性就是選擇器繼承。基于Nicole Sullivan面向對象的css的理念,選擇器繼承是說一個選擇器可以繼承為另一個選擇器定義的所有樣式。這個通過@extend語法實現,如下代碼:

//通過選擇器繼承繼承樣式.error { border: 1px solid red; background-color: #fdd;}.seriousError { @extend .error; border-width: 3px;}

.seriousError不僅會繼承.error自身的所有樣式,任何跟.error有關的組合選擇器樣式也會被.seriousError以組合選擇器的形式繼承,如下代碼:

//.seriousError從.error繼承樣式.error a{ //應用到.seriousError a color: red; font-weight: 100;}h1.error { //應用到hl.seriousError font-size: 1.2rem;}

關于@extend有兩個要點你應該知道。

跟混合器相比,繼承生成的css代碼相對更少。因為繼承僅僅是重復選擇器,而不會重復屬性,所以使用繼承往往比混合器生成的css體積更小。如果你非常關心你站點的速度,請牢記這一點。
繼承遵從css層疊的規則。當兩個不同的css規則應用到同一個html元素上時,并且這兩個不同的css規則對同一屬性的修飾存在不同的值,css層疊規則會決定應用哪個樣式。相當直觀:通常權重更高的選擇器勝出,如果權重相同,定義在后邊的規則勝出。

混合器本身不會引起css層疊的問題,因為混合器把樣式直接放到了css規則中,而繼承存在樣式層疊的問題。被繼承的樣式會保持原有定義位置和選擇器權重不變。通常來說這并不會引起什么問題,但是知道這點總沒有壞處。

以上就是我在官網所了解到的信息, 不算全面, 但是覺得在日常開發肯定夠用了. 附上官網地址:Sass官網地址,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91欧美精品成人综合在线观看| 国产精品美女在线观看| 激情亚洲一区二区三区四区| 日韩美女中文字幕| 欧美最猛性xxxxx免费| 久久精品人人做人人爽| 日本一区二区三区四区视频| 国产精品91久久久| 国语自产精品视频在免费| 久热精品视频在线免费观看| 精品久久久香蕉免费精品视频| 日本精品视频网站| 中文字幕日韩高清| 国内精品中文字幕| 欧美性高跟鞋xxxxhd| 国产精品久久久久久中文字| 国产精品免费网站| 日韩亚洲一区二区| 国产精品视频久久久| 性色av一区二区咪爱| 色yeye香蕉凹凸一区二区av| 久久精品国产欧美亚洲人人爽| 国产精品一区二区久久久| 欧美黄色片视频| 色哟哟亚洲精品一区二区| 欧美色另类天堂2015| 亚洲最新av网址| 欧美专区在线播放| 91精品免费看| 亚洲综合第一页| 欧美性猛交xxxxx免费看| 亚洲精品国产综合区久久久久久久| 欧美三级xxx| 亚洲欧洲国产精品| 亚洲国产精品久久久久秋霞不卡| 色视频www在线播放国产成人| 日韩电影大全免费观看2023年上| 亚洲免费精彩视频| 亚洲成年网站在线观看| 亲子乱一区二区三区电影| 中文字幕九色91在线| 亚洲欧美激情一区| 国产欧美中文字幕| 91综合免费在线| 欧美一级高清免费播放| 国产激情视频一区| www日韩中文字幕在线看| 日本高清视频一区| 日韩精品一区二区视频| 伊人久久久久久久久久| 亚洲精品97久久| 欧美插天视频在线播放| 精品露脸国产偷人在视频| 成人av在线亚洲| 亚洲最大福利网站| 国产精品免费久久久久影院| 国产精品久久久久免费a∨大胸| 亚洲香蕉av在线一区二区三区| 国产日韩欧美自拍| 国产va免费精品高清在线| 日韩精品有码在线观看| 国产精品欧美久久久| 欧美野外猛男的大粗鳮| 精品久久久久久久久久ntr影视| 国产精品一久久香蕉国产线看观看| 中文字幕亚洲情99在线| 久久久精品国产网站| 亚洲肉体裸体xxxx137| 欧美国产日韩免费| 久久伊人免费视频| 欧美极品第一页| 欧美大片在线影院| 欧美日韩免费一区| 91久久久久久久一区二区| 欧美裸体xxxx极品少妇| 一区二区日韩精品| 色一情一乱一区二区| 91成人免费观看网站| 日本精品视频网站| 中文在线资源观看视频网站免费不卡| 日韩av在线免费观看| 亚洲精品免费在线视频| 97视频免费在线看| 亚洲黄色av女优在线观看| 欧美性极品少妇精品网站| 欧美性jizz18性欧美| 日韩免费av片在线观看| 久久久国产一区二区| www亚洲欧美| 激情成人中文字幕| 亚洲女人天堂网| 性欧美xxxx视频在线观看| 中文字幕国产亚洲| 久久人人爽人人爽人人片av高请| 欧美另类暴力丝袜| 成人免费看吃奶视频网站| 久久久国产精品视频| 亚洲天堂av综合网| 国产一区二区三区在线视频| 久久精品国产清自在天天线| 欧美重口另类videos人妖| 91成人天堂久久成人| 日韩av综合中文字幕| 久久99久久99精品中文字幕| 国产精品爱久久久久久久| 在线播放精品一区二区三区| 在线观看国产欧美| 亚洲摸下面视频| 欧美高跟鞋交xxxxhd| 精品福利在线看| 亚洲国产精品成人va在线观看| 国产一区二区三区在线免费观看| 亚洲专区中文字幕| 国产高清视频一区三区| 中文字幕欧美精品在线| 日本在线精品视频| 欧美天天综合色影久久精品| 亚洲欧美在线一区二区| 亚洲黄页视频免费观看| 日韩成人xxxx| 日韩日本欧美亚洲| 亚洲最大成人免费视频| 亚洲人成网站色ww在线| 久久久精品影院| 国产精品美女久久久久av超清| 国产精品自产拍高潮在线观看| 欧美美女15p| 欧美亚洲第一页| 亚洲无av在线中文字幕| 成人激情免费在线| 日韩视频在线一区| 国产欧美最新羞羞视频在线观看| 欧美视频免费在线| 欧洲午夜精品久久久| 亚洲精品久久久久中文字幕二区| 欧美www在线| 欧美大片在线免费观看| 欧美激情视频一区二区| 国产精品一区二区性色av| 国产精品久久精品| 亚洲国产精品久久久久| 4438全国亚洲精品在线观看视频| 91九色蝌蚪国产| 成人www视频在线观看| 精品国产一区二区三区四区在线观看| 久久精品国产2020观看福利| 青草青草久热精品视频在线观看| 色悠久久久久综合先锋影音下载| 少妇高潮久久77777| 国产91|九色| 亚洲成人精品av| 国产亚洲成av人片在线观看桃| 成人综合国产精品| 亚洲人成电影网站色www| 色综合久久精品亚洲国产| 国产啪精品视频网站| 欧美激情欧美狂野欧美精品| 国产精品亚洲一区二区三区| 亚洲性xxxx| 97久久国产精品| 久久精品国产成人精品| 91九色单男在线观看| 欧美成人黑人xx视频免费观看| 国产香蕉97碰碰久久人人|