加载顺序

- 如上的加载顺序和引入顺序一致,先加载app里面的样式文件,再加载路由组件(非异步)里面的,最后加载 assets/main.css
修改组件样式
import 'element-ui/lib/theme-chalk/index.css';
import '../assets/reset.scss';
// 给最外层的div加上id或者class,然后添加一个style,不要加scoped(vue可以有多个style),在组件里直接修改
<template>
<div id="home">
<el-table>
</el-table>
</div>
</template>
<style>
#home .el-table tbody tr:hover>td {
cursor: pointer;
}
#home .el-form .el-form-item .el-input__inner:focus{
border: 1px solid #3D66E4;
}
</style>
<style lang="scss" scoped>
#conBox ::v-deep .el-input__inner {
padding: 0 10px;
}
</style>
scss
- 注意版本号不兼容可能会导致报错,node必须和sass-loader等版本对应,不然也会报错
"node-sass": "^4.14.1",
"sass-loader": "^7.3.1",
"style-loader": "^3.3.1",
.container {
&>p { //可以编译成CSS的 .container>p {} 效果
color:purple;
}
}
- 变量(声明变量的语法是:$+变量名+:+变量值;如下
$color:red; //声明变量
.father { color:$color; }
- 变量嵌套引用:即字符串插值,需要使用 #{} 来进行包裹
$left:left;
.father{
border-#{$left}:2px solid purple; //使用字符串插值之前必须先声明
}
/* 定义全局的css变量 */
:root {
/* 按钮色彩 */
--theme_button_color: pink;
}
#app {
text-align: center;
/* 定义全局的css变量 var(--变量, 默认值)*/
color: var(--theme_button_color);
#nav {
padding: 30px;
}
}
<template>
<el-radio-group v-model="themeValue" @change='changeTheme'>
<el-radio :label="'blue'">blue</el-radio>
<el-radio :label="'green'">green</el-radio>
<el-radio :label="'red'">red</el-radio>
</el-radio-group>
</template>
//换肤功能。设置父辈style
changeTheme (val) {
document.documentElement.style.setProperty("--theme_button_color", val);
}
.container {
color:purple;
border:2px dashed purple;
}
.myText {
@extend .container; //这里将继承.container类的所有样式
font-size: 22px;
}
- 重复代码块,使用混合@mixin命令定义,以及使用@include调用该mixin
@mixin normalStyle {
//使用@mixin命令定义可重复使用的代码块
width:300px;
height:100px;
color:black;
background-color:lightblue;
}
.container {
@include normalStyle; //使用@include 命令引用@mixin定义的代码块
}
scss变量全局化

css: {
loaderOptions: {
sass: {
data: '@import "@/assets/css/variable.scss";'
}
}
},
<style lang="scss">
p {
background: $themeColor;
}
</style>
<script>
import publicStyles from '@/assets/css/variable.scss'
export default {
created () {
console.log('publicStyles', publicStyles.themeColor);
},
};
</script>