在开发中修改第三方组件样式是很常见,但由于 scoped 属性的样式隔离,可能需要去除 scoped 或是另起一个 style 。这些做法都会带来副作用(组件样式污染、不够优雅),样式穿透在 css 预处理器中使用才生效。
我们可以使用>>> 或 /deep/ 或::v-deep解决这一问题:
<style scoped lang="stylus">外层 >>> .el-checkbox {display: block;font-size: 26px;.el-checkbox__label {font-size: 16px;}}</style><style scoped lang="less/scss">/deep/.el-checkbox {display: block;font-size: 26px;.el-checkbox__label {font-size: 16px;}}.testColor {color: yellow;span {color: red;}}// .testBox .testColor {// color: green;// }.testBox .testColor2 {color: green;}.testBox /deep/ .testColor {color: green;}.testBox ::v-deep .testColor2 {color: pink;}::v-deep .nationalColor { // 通用样式穿透color: purple;}/deep/ .nationalColor { // 通用样式穿透2 好像不顶用color: greenyellow;}</style>
