博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈vue中style的scoped属性(修改特定Element组件样式的方法)
阅读量:5732 次
发布时间:2019-06-18

本文共 877 字,大约阅读时间需要 2 分钟。

在单页.vue文件中,为了保证各组件间的css样式不冲突,很可能会使用到局部css,也就是给<style>标签加上一个scoped属性(当然也可以用各种命名规则来规避这个问题)。

一开始用的时候感觉很神奇,于是看代码查资料了解了一下原理。

所谓的局部css,就是通过vue-loader这个插件,在编译打包的时候将带有scoped属性的css打上一个tag,同时将template内的所有html都打上一个相同的tag,最后通过css的属性选择器定位,造就了所谓的局部css。

原理都懂了,再有兴趣深究可以看一下vue-loader的源码。

下面说一个自己在开发中遇到的问题

最近项目中也在使用element-ui进行开发,有时候需要对引入的组件进行一些样式的重写调整,但仅仅是针对某一个页面而不是整体修改,在当前组件中用局部属性导致了不能重写element-ui的样式的问题。

下面是简单的例子,想修改.el-table th的样式

但是发现并不能正常的修改样式,于是通过chrome查看元素一探究竟

发现html中只有子组件的根元素被打了tag标签而编译后的css中是最后一个属性被加了tag标签,所以自然就定位不到元素修改他的样式了

...

既然问题的原理已经清楚了,那么接下来开始寻找解决方案,我们的目的只需要将tag打给我们要修改子组件样式的根元素就可以了

 vue-loader的官方文档中也说了这个问题 所以使用 >>> 符号可以做到,但是注意vue-loader的版本要高于12.2.0 这个功能是这个版本后才具有的

最后上一下测试的demo

转载地址:http://zymwx.baihongyu.com/

你可能感兴趣的文章
分享话题列表
查看>>
PHP-X开发扩展
查看>>
android学习笔记——onSaveInstanceState的使用
查看>>
Windows Server 2003下cwRsyncServer服务端与cwRsync客户端数据
查看>>
iOS 打包上传没有用到日历,但是提示需要在info.plist文件中加入NSCalendarsUsageDescription...
查看>>
工作中如何做好技术积累
查看>>
怎么用sysLinux做U盘双PE+DOS??
查看>>
Spring Transactional
查看>>
shell脚本实例
查看>>
我的友情链接
查看>>
Windows Phone 7 隔离存储空间资源管理器
查看>>
Oracle树形结构的sql语句
查看>>
Microsoft Excel 2000/2003修复工具
查看>>
apache安装报错undefined reference ssl
查看>>
关于爱情只有一句忠告
查看>>
CentOS LVM 新加硬盘,扩容逻辑卷步骤
查看>>
CentOS 7下安装部署Oracle11g图文教程
查看>>
#51CTO学院四周年# 相约烤鸭”
查看>>
四、物理优化(2)索引视图
查看>>
分布式日志收集系统实践(视频教程)
查看>>