Vue开发中覆盖element-ui原有的样式

Vue开发中覆盖element-ui原有组件样式

  项目在开发Vue的时候用的UI库是element-ui,在某个需求我需要自己尝试去修改element-ui中内置组件的样式。

  为了尝试覆盖,我做了以下的操作:

    1、使用自定义的类名,最终在实现效果的时候还是不可以,打开F12检查模式,发现还是类名没有附加上去,但是没实现,不甘心失败的我继续看看能不能怎么解决

    2、使用组件自身携带的类名,例如el-button这样直接覆盖,发现还是不行,推测是因为内置属性使用了父元素等,也就是他的权重计算比我写的高

    3、使用深度作用选择器 >>> 或者 /deep/

    注:>>>和 /deep/两个是一样的功能

    使用方法:在自定义类名中使用,如图示  

 

 

     但是我在使用>>>这个的时候是没办法生效的,初步推测是因为CSS预处理器的原因,因为之前使用的LESS预处理器是没有这问题,我这里是使用的是SCSS预处理器。

   为了防止不生效,我在每一个样式后面都加了!important,这样下来,我需要的样式就正常显示了,下面是没修改前和修改后的样式对比:

 

  题外话:scoped是什么标签属性?为什么Vue-CLI在创建Vue文件的时候会在每一个style样式里面写上scoped属性。

 
posted @ 2020-07-01 16:04  你生气时好丑  阅读(2140)  评论(0编辑  收藏  举报