vue-cli4覆盖antd样式

覆盖antd样式解决办法有两个:

1.在一个组件中同时使用有作用域和无作用域的样式

当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。

vue组件编译后,会将 template 中的每个元素加入 [data-v-xxxx] 属性来确保 style scoped 仅本组件的元素而不会污染全局。

2.深度作用选择器

如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符:

只作用于css!!!!!!!!!!!!!!

<style scoped>

 .a >>> .b { /* ... */ }

</style>

 如果是sass/less的话可能无法识别,这时候需要使用 /deep/ 选择器了。

/deep/ .class2{

 font-size:20px; //对所有子组件生效.

         .class3{   }  //没有必要写多层deep 父类有deep后子类自动也会深度选择 并且这么写在firfox里会失效

}

 

但是sass中使用/deep/没问题,在scss中使用/deep/报错了。

找到vue官网关于深度选择器是这样说的:有些像 Sass 之类的预处理器无法正确解析 >>>。这种情况下你可以使用 /deep/ 或 ::v-deep 操作符取而代之——两者都是 >>> 的别名,同样可以正常工作。

于是用 ::v-deep 就可以了

猜你喜欢

转载自blog.csdn.net/weixin_42217154/article/details/110927974