vue3中安裝并使用CSS預(yù)處理器Sass的方法詳解
Sass是什么?
Sass(Syntactically Awesome Style Sheets)是一種CSS預(yù)處理器,它擴展了CSS的功能,提供了更高級的語法和特性,例如變量、嵌套、混合、繼承和顏色功能等,這些特性可以幫助開發(fā)者更高效地管理和維護樣式表。Sass語法是基于縮進(縮進花括號)的,它與傳統(tǒng)的CSS語法類似,但添加了一些額外的規(guī)則和語法結(jié)構(gòu)。Sass代碼需要編譯成CSS代碼才能在瀏覽器中呈現(xiàn)。
為什么使用Sass?
Sass讓編寫可維護的CSSS更加簡易方便??梢杂酶俚拇a,做更多的事,用更少的時間,具有更強的可讀性。
安裝sass
以前用vue-cli的時候,還要安裝sass-loader、node-sass什么的,安裝的時候還會遇到各種問題,但是vite其實安裝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: {
/**如果引入多個文件,可以使用
* '@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中使用$符號定義變量。
創(chuàng)建一個變量
$primaryColor: #eeffcc;
定義變量并不會輸出任何CSS,它們只會被記錄在當前作用域的變量集中。
使用變量
body {
background: $primaryColor;
}變量作用域
如果你在選擇器中聲明了一個變量,那么它的作用范圍就是這個選擇器內(nèi)部。
$primaryColor: #eeccff;
body {
$primaryColor: #ccc;
background: $primaryColor; //編譯后#ccc
}
p {
color: $primaryColor; //編譯后#eeccff
}Sass提供了一個!global標識符,可以在選擇器中聲明一個全局變量。
$primaryColor: #eeccff;
body {
$primaryColor: #ccc !global;
background: $primaryColor; //編譯后#ccc
}
p {
color: $primaryColor; //編譯后#ccc
}2、數(shù)學計算
與CSS不同,Sass允許使用數(shù)學表達式!這對于混合宏非常有用,是我們能夠使用自己的標記做一些很酷的事情。
支持的操作符包括:
加:+
減:-
除:/
乘:*
取余:%
相等:==
不相等:!=
兩個Sass有關(guān)于數(shù)學計算的“陷阱” /符號用來簡寫CSS字體屬性,比如font: 14px/16px,所以如果你想在非變量值上使用除法操作符,那么你需要使用括號包裹它們:
$fontDiff: (14px/16px);
不可以混合使用值的單位:
$container-width: 100% - 20px;
基于基礎(chǔ)的容器寬度創(chuà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中一個很有用又經(jīng)常被誤用的特性,就是嵌套聲明。
CSS中,我們會這么寫
.container {
width: 100%;
}
.container h1 {
color: red;
}在Sass中,我們這樣寫
.container {
width: 100%;
h1 {
color: red;
}
}可以通過使用&符號來引用父選擇器給偽選擇器添加鏈接屬性
a.myAnchor {
color: blue;
&:hover {
text-decoration: underline;
}
&:visited {
color: purple;
}
}4、Imports
imports允許將總的樣式分割成小文件,并在另一個文件中導(dǎo)入。
我們可以使用@import指令導(dǎo)入.scss文件
@import "grids.scss";
也可以不需要寫擴展名
@import "grids";
sass中文官網(wǎng)
更多詳細可以訪問sass中文官網(wǎng)
到此這篇關(guān)于vue3中安裝并使用CSS預(yù)處理器Sass的方法介紹的文章就介紹到這了,更多相關(guān)vue3使用CSS內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue3.x如何設(shè)置瀏覽器動態(tài)Title方法
這篇文章主要介紹了Vue3.x如何設(shè)置瀏覽器動態(tài)Title方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue Cli 3項目使用融云IM實現(xiàn)聊天功能的方法
這篇文章主要介紹了Vue Cli 3項目 使用融云IM實現(xiàn)聊天功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04
Vue-admin-template?報Uncaught?(in?promise)?error問題及解決
這篇文章主要介紹了Vue-admin-template?報Uncaught?(in?promise)?error問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

