news 2026/6/10 0:08:04

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

作者头像

张小明

前端开发工程师

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/9 21:35:15

探秘易卡随行:JAVA名片系统的创新实践

易卡随行:JAVA名片系统的创新实践深度解析易卡随行作为基于JAVA技术构建的智能名片管理系统,通过模块化架构、智能化交互与数据安全保障,重新定义了数字化名片的用户体验与商务社交模式。以下从技术架构、功能创新、用户体验优化及行业价值四…

作者头像 李华
网站建设 2026/6/9 19:53:50

385 涡流室式柴油机机体设计及动力计算

385涡流室式柴油机机体设计及动力计算 一、设计背景与意义 385涡流室式柴油机作为小型动力机械的核心装备,广泛应用于农业机械、工程机械及发电机组等领域,其机体作为关键承载部件,需同时满足结构强度、密封性能与动力传递效率的要求。传统…

作者头像 李华
网站建设 2026/6/9 21:08:22

315吨液压机总体及机械系统设计

315吨液压机总体及机械系统设计 一、设计背景与意义 液压机作为金属成形、材料压制等领域的核心设备,凭借压力输出稳定、承载能力强等优势,广泛应用于机械制造、汽车零部件加工、航空航天等行业。315吨级液压机因适配中等载荷加工需求,成为中…

作者头像 李华