CSS样式穿透

引入

在 Vue 项目中引入 ElementUI 等组件库时,经常需要修改某个组件的原有样式。但我们在编写 css 样式时,都会在 <style> 标签中加上 scope 属性,这样编写的样式就只会在当前的组件上生效,不会影响到其他组件。这也带来一个问题:在带有 scope 属性的 <style> 标签中编写的修改某个组件的原有样式不会生效。

样式穿透

为了解决这个问题,需要使用到样式穿透。样式穿透的三种方式:

  • >>>
  • ::v-deep
  • /deep/

注意:>>> 只作用于CSS,::v-deep/deep/ 可以用于 Sass 和 Less

语法示例

外层 >>> 第三方组件 {
	样式
}
.conBox >>> .ivu-input {
	text-align: center!important;
}

外层 ::v-deep 第三方组件 {
	样式
}
.conBox ::v-deep .el-input__inner{
    padding:0 10px;
}

外层 /deep/ 第三方组件 {
	样式
}
.conBox /deep/ .el-input__inner{
    padding:0 10px;
}