vue-cli —— 如何局部修改Element样式


Posted in Javascript onOctober 22, 2020

最近在做vue项目时用到了Element,发现这玩意儿用起来很舒服,很新颖,上手也很快,而且效果足够酷炫。但是后面发现一个很大的问题,那就是Element的样式有限,这极大地限制了项目的应用广度,所以我们有必要对Element内部的CSS进行一定的覆盖,来改变其样式。在修改Element样式时,遇到了一些问题,这里简单做一些记录,便于以后查阅。

我在用el-switch做开关切换时,使用默认样式:

代码如下:

vue-cli —— 如何局部修改Element样式

效果:

vue-cli —— 如何局部修改Element样式

现在我想把蓝色字体改为其他颜色,但是我发现无论我如何修改样式,界面始终没有任何变化,所以我想到可能是需要覆盖Element默认的el-switch样式。于是,我找呀找,找呀找,终于在node_modules/element-ui/lib/theme-chalk下找到了对应的默认样式,如下所示:

Element默认样式:

vue-cli —— 如何局部修改Element样式

vue-cli —— 如何局部修改Element样式

于是,我想着把,这下问题能解决了,我开开心心地在自己的组件里把对应的样式覆盖了:

vue-cli —— 如何局部修改Element样式

我鸡冻的点了一下刷新,发现并没有什么卵用,还是以前熟悉的面孔:

vue-cli —— 如何局部修改Element样式

我不服气,继续百度,似乎看到一丝曙光,按照网上说的,在样式的color后面加了 !important ,然后心情美丽地刷新了一下,还是老样子,我一个七尺男儿简直想哭,崩了.....

vue-cli —— 如何局部修改Element样式

vue-cli —— 如何局部修改Element样式

我仍不死心,继续找度娘,终于老天不负有心人,我get到了我的宝贝,把样式单独写在外面就成功了。

vue-cli —— 如何局部修改Element样式

惊喜之余,我发现,这种修改方式存在一个bug,那就是其他页面的样式同时也会被修改成这种样式。我忽的想起,style标签上添加的scoped属性,是表示它的样式作用于当下的模块,很好的实现了样式私有化的目的。如果不加scoped属性,这个样式就具有全局属性。因此,一旦在不加scoped属性的情况下,样式被覆盖,那么整个项目使用到该标签时的样式都会跟着被覆盖。

所以问题又来了,如何让该覆盖样式只在当下组件起作用呢?问谁呢?继续找度娘呗.......(才疏学浅,只会度娘....),找啊找,找啊找,费了好大劲,终于找到了答案。就是简单地用scoped和>>>符号进行穿透。何谓穿透?(引用了第三方组件,需要在组件中局部修改第三方组件的样式,而又不想去除scoped属性造成组件之间的样式污染。这时就要通过特殊的方式,来穿透scoped。)

最后大功告成,如下:

vue-cli —— 如何局部修改Element样式

vue-cli —— 如何局部修改Element样式

注意:

1.这里的  >>> 可以用 /deep/ 替换掉,这里的 /deep/ 操作符是 >>> 的别名,同样也可以正常工作。

2.这里的 !important 不加其实也没毛病,但是因为这是使用第三方库的样式,所以在覆盖样式时最好加上 !important ,这样才能指明优先级。

以上就是vue-cli —— 如何局部修改Element样式的详细内容,更多关于vue 修改Element样式的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
dojo 之基础篇(二)之从服务器读取数据
Mar 24 Javascript
js全选实现和判断是否有复选框选中的方法
Feb 17 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
Jun 19 Javascript
.NET微信公众号开发之创建自定义菜单
Jul 16 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
Jul 27 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
Apr 01 Javascript
一起学写js Calender日历控件
Apr 14 Javascript
深入理解jQuery中的事件冒泡
May 24 Javascript
纯原生js实现table表格的增删
Jan 05 Javascript
Vuepress 搭建带评论功能的静态博客的实现
Feb 17 Javascript
在vue中使用echarts(折线图的demo,markline用法)
Jul 20 Javascript
js实现幻灯片轮播图
Aug 14 Javascript
微信小程序入门之绘制时钟
Oct 22 #Javascript
微信小程序入门之指南针
Oct 22 #Javascript
微信小程序实现拼图小游戏
Oct 22 #Javascript
Vue select 绑定动态变量的实例讲解
Oct 22 #Javascript
在Vue中使用Select选择器拼接label的操作
Oct 22 #Javascript
JavaScript 中判断变量是否为数字的示例代码
Oct 22 #Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 22 #Javascript
You might like
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
AngularJS 支付倒计时功能实现思路
2017/06/05 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
2017/09/13 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
js中null与空字符串""的区别讲解
2019/01/17 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
遗传算法python版
2018/03/19 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
Python删除n行后的其他行方法
2019/01/28 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
水产养殖学应届生求职信
2013/09/29 职场文书
如何写辞职书
2015/02/26 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
微信小程序调用python模型
2022/04/21 Python