news 2026/6/22 23:50:45

样式穿透,以及解决样式穿透的办法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
样式穿透,以及解决样式穿透的办法

样式穿透

组件样式污染的核心原因,就是不加scoped的话,组件里的CSS选择器都是全局的,类名一重复就会互相覆盖。解决有两种办法,一是给组件最外层的顶级元素起唯一类名,靠人工保证不重复,不过一般不用;主流是给style加scoped,它的核心原理是编译时做两件事,一是给当前组件所有HTML元素,还有组件里引入的所有子组件(包括UI组件)的根标签(顶级元素),都自动加上唯一的data-v-xxx哈希属性,二是给当前组件的所有样式规则,也拼接这个哈希属性选择器,这样样式就只会匹配带相同哈希的元素,哈希几乎不会重复,就从根本上避免了样式污染。

也正因为scoped只给子组件的根标签加当前组件的哈希,子组件内部的非根元素,是它自己编译的,不会带当前组件的哈希,所以我们用带哈希的样式规则,根本匹配不到UI组件这类第三方组件的内部子元素,直接写样式就不生效。这时候就需要用样式穿透,Vue2.7及以后用:deep(),老版本的/deep/已经不兼容了,穿透的作用就是让编译器不对穿透后的选择器拼接哈希,这样样式就能直接匹配到UI组件内部的子元素,实现样式修改。

而且因为scoped会给子组件根标签加哈希,所以我们直接修改UI组件的根标签样式,不用穿透也能生效,这也是scoped的一个设计细节。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 16:13:34

10/0.4kV变电站电气部分设计

10/0.4kV变电站电气部分设计 一、设计背景与意义 1004kV特高压变电站作为电力系统骨干网架的核心节点,承担着跨区域大容量电力输送、电网互联及负荷分配的关键功能,其电气部分设计直接决定电网运行的安全性、稳定性与经济性。随着新能源发电规模的持续扩…

作者头像 李华
网站建设 2026/6/20 1:05:54

如何在linux系统上安装微信

1、在linux系统的火狐浏览器中搜索、下载微信选linux版本选X86下载完成后,微信位于”下载“文件夹:打开linux终端,$cd 下载$sudo dpkg -i WeChatLinux_x86_64.deb安装完成后,在linux终端输入(字母全部小写)…

作者头像 李华
网站建设 2026/6/21 3:56:56

【26美赛A题】2026美赛数学建模(MCM/ICM)思路解析及代码分享

【26美赛A题】2026美赛数学建模赛(MCM/ICM)思路解析及代码分享 订阅即可获取2026年及历年数学建模笔记,万字题解内容,且结合全球最新AI技术辅助,帮你轻松攻坚竞赛!后续还将持续发布华为杯、高教社杯、华数杯…

作者头像 李华
网站建设 2026/6/20 1:18:30

计算机毕业设计之springboot基于JAVA WEB的宠物寄养管理系统

随着信息时代的来临,过去的传统管理方式缺点逐渐暴露,对过去的传统管理方式的缺点进行分析,采取计算机方式构建宠物寄养管理系统。本文通过课题背景、课题目的及意义相关技术,提出了一种宠物商品、宠物店信息、宠物信息等于一体的…

作者头像 李华