vue 怎么改掉全局css 样式_怎么修改vue里面elememtUI的css样式

需求改为红色

background-color: red;

}

1. 第一种

把上面的scoped去掉

优点: 修改简便

缺点: 把scoped去掉了,就变成全局css了,可能会影响其他组件

2. 第二种

就是去 node_modules裡面把 element-ui 整包 CSS 给抓出来,然后放到自己指定的路径!

这是 element-ui 的 CSS 在node_modules裡面的位置

// 原本的路径 (就不要用 node_modules 这包)

import ‘element-ui/lib/theme-chalk/index.css’;

// 自己抓下来后指定的路径 (改成自己抓下来这包)

import ‘./scss/theme-chalk/index.css’;

然后这样就可以去修改自己抓下来这包,就可以改 element-ui 的 CSS 了。

优点:可以不会去跟其他 class 互相影响到,还有不是透过覆盖,是透过直接修改,这样整包的主导权就会在自己手上!

缺点:要花点时间去看完整包CSS架构,还有就是说如果 element-ui 有升级的话,对于自己抓下来修改CSS的部分可能会有问题,所以这方面可能要评估一下。

3. 第三种

我个人觉得比较好得做法,不用把整个CSS包抓出改,也可以使用scoped的方式来写CSS,其实可以使用 深度作用选择器 来实作。

如果希望 scoped 样式中的一个选择器能够更深入权重,例如影响子组件,你可以使用 >>>加深操作权重。

这个代码会编译成

.a[data-v-f3f3eg9] .b { /* ... */ }

像 Sass 无法正确解析 >>>。这种情况下你可以使用 /deep/符号取代,这是>>>的别名,同样可以正常编译。

我们回来看看我完成修改的画面!

我的阶层是 .el-main > .el-input > .el-input__inner,所以我这样写

.el-input__inner 就是我最后要修改的 input,所以我最后使用了 /deep/去修改他的CSS样式,是不是很简单。

优点:可以不用一定要element-ui整包CSS抓出来放到自己的专案资料夹裡面去修改,还可以在vue的组件裡面使用scoped让你的CSS可以组件化,不要去改到原本element-ui的程式码,我个人比较喜欢这样的做法。

缺点: 这样就是透过覆盖的方式来去覆写 element-ui 的 CSS,效能的部分有待验证,不过比起把整包 CSS 抓出来修改还要去担心会不会因为升级或是改坏那包CSS的风险跟时间成本比起来,我觉得还好啦!

关于深度作用选择器的相关内容可以参考 vue-loader 的文件裡面就有提到。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值