news 2026/2/16 12:20: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/2/14 7:27:10

JAVA源码解析:易卡随行名片系统高效搭建

以下从Java源码视角深度解析“易卡随行”智能名片管理系统的高效搭建路径,聚焦技术架构、核心模块实现与性能优化策略:一、技术架构的源码实现1. 微服务拆分与通信服务划分:基于Spring Boot实现名片服务、用户服务、权限服务、统计服务四大微…

作者头像 李华
网站建设 2026/2/14 13:16:45

铜厚对阻抗的影响在实际设计中如何验证?

铜厚对阻抗的影响在实际设计中,主要通过仿真验证和实测验证相结合来确保准确性。作为国内PCB测量仪器、智能检测设备等专业解决方案供应商,班通科技自研推出了国内首款国产替代手持式铜厚测试仪Bamtone T60系列、TDR阻抗测试仪Bamtone H系列、线宽线距测…

作者头像 李华
网站建设 2026/2/8 4:51:43

270气缸体钻孔夹具及机床电液控制系统设计

270气缸体钻孔夹具及机床电液控制系统设计 一、设计背景与意义 270气缸体作为发动机核心零部件,其孔系加工精度直接影响发动机装配精度与运行可靠性,要求孔位同心度误差控制在0.02mm以内。传统钻孔加工存在夹具定位精度低、装夹效率差,且机…

作者头像 李华