vue覆盖组件样式

用Vue开发时会用到组件库,有时需修改其自带样式。常见方法如在公共css文件引入、增加!important等存在加载不必要样式、污染全局样式等问题。文中推荐了增加独有类名、使用css深度选择器等方案,并给出示例及考虑兼容的写法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用 vue 开发时会用到一些组件库,例如比较流行的 elementUI ,iView , museUI …
但是在使用中 有时需要修改组件库自带的样式,这时可能会写在一个公共的css文件,然后在main.css中引入,这确实是可行的 ,但如果样式很多,那每个页面都会加载很多不必要的样式。 况且,一个页面的css 写在 不同的 css文件里面 很不利于维护。这里推荐一个css的属性 深度选择器 .

这里提供几种可用方案

1.一个公共的css文件,然后在main.css中引入。但是样式很多,每个页面都会加载很多不必要的样式,且不利于维护

2.增加important。直接在css文件中,使用原组件类名,增加样式需要增加【!important】,并且去掉scoped,但是这样做,就会污染全局组件样式

3.增加独有类名,比如elementUI, <el-col class='special-style'>...</el-col>. 

4.使用css属性:deep

比如:在一个商城的项目使用了mint-ui的radio组件,此时mint-ui已经有默认的样式了,我可以通过提取公共文件的方式来修改,以达到自己想要的,但是同时其他地方也会受到影响

同时只想要修改这个地方的样式,在其他页面用到mint-ui的时候不变那么就可以考虑使用 /deep/

.mint-radiolist /deep/ .mint-cell-title {
  margin-top: 0.3rem;
}

考虑到deep属性的兼容问题

.mint-radiolist >>> .mint-cell-title {
  margin-top: 0.3rem;
}

 

转载于:https://www.cnblogs.com/fancyLee/p/10849263.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值