深度选择器
::v-deep 和 /deep/ 是出现在 Vue.js 技术栈中的。
学习 Vue.js 的时候,你会碰到这些选择器。 在使用 Vue.js 编写组件时,组件的样式可能会嵌套在父级组件中,此时使用 /deep/ 或 ::v-deep 可以穿透到子组件内部的 DOM 元素,实现样式的继承和覆盖。
1. 深度选择器 /deep/
在 Vue.js 2.6 中,/deep/ 被标记为过时,可以用 ::v-deep 来代替。同时也可以使用 >>> 选择器来实现相同的选择器效果。
/deep/ .el-switch__core::before {
content: "不含税";
position: absolute;
top: 0;
right: 3px;
color: #fff;
}
.is-checked /deep/ .el-switch__core::before {
content: "含税";
position: absolute;
top: 0;
left: 3px;
color: #fff;
}/deep/ .el-switch__core::before {
content: "不含税";
position: absolute;
top: 0;
right: 3px;
color: #fff;
}
.is-checked /deep/ .el-switch__core::before {
content: "含税";
position: absolute;
top: 0;
left: 3px;
color: #fff;
}2. 深度选择器 ::v-deep
3. 深度选择器 >>>
4. !important
在 css 中,!important 可以用于覆盖样式优先级和继承规则,以确保特定规则的优先级最高。
5. scoped
6. scss
scss 则是一种 css 预处理器,它允许你使用变量、嵌套、混合、继承等高级功能来编写样式表,简化了 css 的书写。scss 文件可以使用 .scss 后缀名,也可以使用 .sass 后缀名。
总之,学习 Vue.js 和 css 的时候,你都会碰到 ::v-deep 和 !important,在学习 scss 时会接触到后者的简写语法 !。
7. sass
- 全称
Syntactically Awesome StyleSheets
sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 sass 以及 sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目。
8. less
- 全称
Leaner Style Sheets
less 是一门向后兼容的 css 扩展语言,是一门 css 预处理语言,它扩充了 css 语言,增加了诸如变量、混合( mixin )、函数等功能,让 css 更易维护、方便制作主题、扩充。less 可以运行在 Node 或浏览器端。
less 提供了使用嵌套(nesting)代替层叠或与层叠结合使用的能力。
假设我们有以下 css 代码:
#header {
color:black;
}
#header .navigation {
font-size:12px;
}
#header .logo {
width:300px;
}#header {
color:black;
}
#header .navigation {
font-size:12px;
}
#header .logo {
width:300px;
}用 less 语言我们可以这样写:
#header {
color:black;
.navigation {
font-size:12px;
}
.logo {
width:300px;
}
}#header {
color:black;
.navigation {
font-size:12px;
}
.logo {
width:300px;
}
}用 less 书写的代码更加简洁,并模仿了 HTML 的组件结构。
9. css
- 全称
Cascading Style Sheets(层叠样式表)
css 是一门历史悠久的标记性语言,同 HTML 一道,被广泛应用于万维网(World Wide Web)中。HTML 主要负责文档结构的定义,css 负责文档表现形式或样式的定义。
liang14658fox