vue中scss样式污染引发的思考

2024-02-29 1137阅读

温馨提示:这篇文章已超过386天没有更新,请注意相关的内容是否还可用!

新做了一个项目,就是在登录后,就会产生左侧菜单的按钮颜色不一样。

vue中scss样式污染引发的思考

然后发现样式是从这里传过来的

vue中scss样式污染引发的思考

发现是登录页面的css给污染了

vue中scss样式污染引发的思考

就是加了scope就把这个问题解决了

vue中scss样式污染引发的思考

然后想总结一下这个思路:就是如何排查污染样式:

如果出现了html元素定位错乱或者显示不正常, 而且觉得自己写的没有问题的情况下,我都是通过chrome的开发者工具,去看是什么导致的这个样式问题,然后看这个样式的来源去确定。

vue中scss样式污染引发的思考

vue中scss样式污染引发的思考

此可知,添加scoped属性的组件,为了达到不污染全局,做了如下处理:

1.给HTML的DOM节点加一个不重复属性data-v-xxxx 标志唯一性;

2.在添加scoped属性的组件的每个样式选择器后添加一个等同与“不重复属性”相同的字段,实现类似于“作用域”的作用,不影响全局;

vue中scss样式污染引发的思考

3.如果组件内部还有组件,只会给最外层的组件里的标签加上唯一属性字段,不影响组件内部引用的组件(例如这里我使用了el-button,但是他只给外层的加了data-v-xxxx这个内容,里面的span并没有增加这个内容)

vue中scss样式污染引发的思考

这样的问题就是不能修改子组件里面的样式内容了

解决方法:

1、不给style样式加scoped(这个不可能用,因为不能不加)

2、里面有个加scoped的style样式,再单独写了style标签,不加scoped的属性里面写修改的样式。(感觉也不太好)

3、::v-deep 加改动的样式 ;注意如果用scss的话 需改为 /deep/或者 >>>(感觉这个比较好)

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]