vue3中安裝并使用CSS預(yù)處理器Sass的方法詳解
Sass是什么?
Sass(Syntactically Awesome Style Sheets)是一種CSS預(yù)處理器,它擴(kuò)展了CSS的功能,提供了更高級(jí)的語法和特性,例如變量、嵌套、混合、繼承和顏色功能等,這些特性可以幫助開發(fā)者更高效地管理和維護(hù)樣式表。Sass語法是基于縮進(jìn)(縮進(jìn)花括號(hào))的,它與傳統(tǒng)的CSS語法類似,但添加了一些額外的規(guī)則和語法結(jié)構(gòu)。Sass代碼需要編譯成CSS代碼才能在瀏覽器中呈現(xiàn)。
為什么使用Sass?
Sass讓編寫可維護(hù)的CSSS更加簡易方便??梢杂酶俚拇a,做更多的事,用更少的時(shí)間,具有更強(qiáng)的可讀性。
安裝sass
以前用vue-cli的時(shí)候,還要安裝sass-loader、node-sass什么的,安裝的時(shí)候還會(huì)遇到各種問題,但是vite其實(shí)安裝sass就可以了,很簡單。
1、安裝sass
npm install sass -D
2、編寫全局css變量/全局mixin
// 全局變量 / globalVar.scss
$font-size-normal: 32px;
$bg-color: #1989fa;
// 全局mixin / globalMixin.scss
@mixin box-shadow($bulr: 20px, $color: #1989fa7a) {
-webkit-box-shadow: 0px 0px $bulr $color;
-moz-box-shadow: 0px 0px $bulr $color;
box-shadow: 0px 0px $bulr $color;
}3、vite引入并使用
//全局引入
css: {
preprocessorOptions: {
scss: {
/**如果引入多個(gè)文件,可以使用
* '@import "@/assets/scss/globalVariable1.scss";
* @import"@/assets/scss/globalVariable2.scss";'
**/
additionalData: '@import "@/style/globalVar.scss";',
}
}
},4、按需引入并使用
<style scoped lang="scss">
@import "@/style/globalMixin.scss";
.test{
width: 650px;
height: 60px;
font-size: $font-size-normal;
background-color: $bg-color;
@include box-shadow;
}sass語法
1、變量
Sass讓CSS可以使用變量。變量類型可以是數(shù)字,字符串,顏色,null,列表和maps。在Sass中使用$符號(hào)定義變量。
創(chuàng)建一個(gè)變量
$primaryColor: #eeffcc;
定義變量并不會(huì)輸出任何CSS,它們只會(huì)被記錄在當(dāng)前作用域的變量集中。
使用變量
body {
background: $primaryColor;
}變量作用域
如果你在選擇器中聲明了一個(gè)變量,那么它的作用范圍就是這個(gè)選擇器內(nèi)部。
$primaryColor: #eeccff;
body {
$primaryColor: #ccc;
background: $primaryColor; //編譯后#ccc
}
p {
color: $primaryColor; //編譯后#eeccff
}Sass提供了一個(gè)!global標(biāo)識(shí)符,可以在選擇器中聲明一個(gè)全局變量。
$primaryColor: #eeccff;
body {
$primaryColor: #ccc !global;
background: $primaryColor; //編譯后#ccc
}
p {
color: $primaryColor; //編譯后#ccc
}2、數(shù)學(xué)計(jì)算
與CSS不同,Sass允許使用數(shù)學(xué)表達(dá)式!這對(duì)于混合宏非常有用,是我們能夠使用自己的標(biāo)記做一些很酷的事情。
支持的操作符包括:
加:+
減:-
除:/
乘:*
取余:%
相等:==
不相等:!=
兩個(gè)Sass有關(guān)于數(shù)學(xué)計(jì)算的“陷阱” /符號(hào)用來簡寫CSS字體屬性,比如font: 14px/16px,所以如果你想在非變量值上使用除法操作符,那么你需要使用括號(hào)包裹它們:
$fontDiff: (14px/16px);
不可以混合使用值的單位:
$container-width: 100% - 20px;
基于基礎(chǔ)的容器寬度創(chuàng)建一個(gè)動(dòng)態(tài)列
$container-width: 100%;
.container {
width: $container-width;
}
.col-4 {
width: $container-width / 4;
}
// 編譯后是這樣的
// .container {
// width: 100%;
// }
//
// .col-4 {
// width: 25%;
// }3、嵌套
Sass中一個(gè)很有用又經(jīng)常被誤用的特性,就是嵌套聲明。
CSS中,我們會(huì)這么寫
.container {
width: 100%;
}
.container h1 {
color: red;
}在Sass中,我們這樣寫
.container {
width: 100%;
h1 {
color: red;
}
}可以通過使用&符號(hào)來引用父選擇器給偽選擇器添加鏈接屬性
a.myAnchor {
color: blue;
&:hover {
text-decoration: underline;
}
&:visited {
color: purple;
}
}4、Imports
imports允許將總的樣式分割成小文件,并在另一個(gè)文件中導(dǎo)入。
我們可以使用@import指令導(dǎo)入.scss文件
@import "grids.scss";
也可以不需要寫擴(kuò)展名
@import "grids";
sass中文官網(wǎng)
更多詳細(xì)可以訪問sass中文官網(wǎng)
到此這篇關(guān)于vue3中安裝并使用CSS預(yù)處理器Sass的方法介紹的文章就介紹到這了,更多相關(guān)vue3使用CSS內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3.x對(duì)echarts的二次封裝之按需加載過程詳解
echarts是我們后臺(tái)系統(tǒng)中最常用的數(shù)據(jù)統(tǒng)計(jì)圖形展示,外界對(duì)它的二次封裝也不計(jì)層數(shù),這篇文章主要介紹了vue3.x對(duì)echarts的二次封裝之按需加載,需要的朋友可以參考下2023-09-09
Vue3.x如何設(shè)置瀏覽器動(dòng)態(tài)Title方法
這篇文章主要介紹了Vue3.x如何設(shè)置瀏覽器動(dòng)態(tài)Title方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
vue自定義指令的創(chuàng)建和使用方法實(shí)例分析
這篇文章主要介紹了vue自定義指令的創(chuàng)建和使用方法,結(jié)合完整實(shí)例形式分析了vue.js創(chuàng)建及使用自定義指令的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-12-12
Vue開發(fā)過程中遇到的疑惑知識(shí)點(diǎn)總結(jié)
vue是法語中視圖的意思,Vue.js是一個(gè)輕巧、高性能、可組件化的MVVM庫,同時(shí)擁有非常容易上手的API。下面這篇文章主要給大家總結(jié)了Vue在開發(fā)過程中遇到的疑惑知識(shí)點(diǎn),有需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01
VueX如何實(shí)現(xiàn)數(shù)據(jù)共享
這篇文章主要介紹了VueX如何實(shí)現(xiàn)數(shù)據(jù)共享問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Vue Cli 3項(xiàng)目使用融云IM實(shí)現(xiàn)聊天功能的方法
這篇文章主要介紹了Vue Cli 3項(xiàng)目 使用融云IM實(shí)現(xiàn)聊天功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04
Vue-admin-template?報(bào)Uncaught?(in?promise)?error問題及解決
這篇文章主要介紹了Vue-admin-template?報(bào)Uncaught?(in?promise)?error問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07

