安裝 scss
npm install sass-loader@10.1.1 --save-dev
npm install node-sass --sava-dev
注意:sass-loader需要指定@10的版本,因為后續(xù)的版本在vue-cli腳手架中會出現(xiàn)一些問題
基礎(chǔ)使用
<style lang="scss" scoped>
.xxxx {
.xxx-x {
...
}
}
</style>
大部分場景下,使用scss可以實現(xiàn)上面的樣式嵌套層級關(guān)系,相信大家都用過。
下面要說下scss的進(jìn)階用法。scss 全局變量和mixin。
環(huán)境配置
想要在vue-cli中全局使用 scss的全局變量和 @mixin樣式混入,需要安裝插件,然后在
vue.conf.js中配置
npm install style-resources-loader vue-cli-plugin-style-resources-loader --save-dev
vue.config.js 中配置
module.exports = {
pluginOptions: {
'style-resources-loader': {
preProcessor: 'scss',
patterns: [
// 路徑根據(jù)具體需求更改
path.resolve(__dirname, 'src/assets/styles/variables.scss'),
path.resolve(__dirname, 'src/assets/styles/mixin.scss')
]
}
}
}
scss全局變量的使用
上述環(huán)境配置中配置的
variables.scss就是全局的變量文件
variables.scss
$--color-primary: #468fff;
$--color-primary-active: #69a5ff;
xxx.vue 文件中直接使用該變量
<style lang="scss" scoped>
.main-wrap {
background: $--color-primary;
}
</style>
@mixin與@include實現(xiàn)css編程式風(fēng)格
mixin.scss
@mixin 函數(shù)名($參數(shù)名: 默認(rèn)值)
@mixin flex($justify-content: center, $align-center: center, $flex-direction: row){
display: flex;
justify-content: $justify-content;
align-items: $align-center;
flex-direction: $flex-direction;
}
xxx.vue 中使用
使用 @include 進(jìn)行引用即可
<style lang="scss" scoped>
.main-wrap {
@include flex(center,center,row);
}
</style>