scss下解决父组件中使用::v-deep修改样式穿透到子组件的问题

开发中经常会用到深度选择器来修改第三方组件库等子组件的样式,这时候就用到样式穿透(style Penetration)

样式穿透的方式有:>>>、 /deep/、::v-deep这三种

使用中发现了一个问题,就是当在父组件使用了v-deep修改自身组件或者第三方组件样式时,会影响到子组件中的样式,

第一种方式:

使用>>>修改无效,原因是scss等预处理器却无法解析>>>

第二种:

而使用/deep/修改时报SassError: expected selector. 原因是sass不支持这个选择器。

第三种,使用::v-deep,

使用方式:要修改的元素外层套一层box,修改样式时加在选择器前,这样就可以将要修改的的元素限制在当前文件,如下,需要修改class为v-tabs__nav的元素时:

javascript 复制代码
 .tabs-wrap ::v-deep.v-tabs__nav{
   background-color: transparent !important;
 }
相关推荐
程序员阿耶12 分钟前
5 个让 CSS 起飞的新特性,设计师看了直呼内行
css
_AaronWong27 分钟前
Vue3+Element Plus 通用表格组件封装与使用实践
前端·javascript·vue.js
前端西瓜哥27 分钟前
图形编辑器开发:文字排版如何实现自动换行?
前端
前端Hardy40 分钟前
HTML&CSS:纯CSS实现随机转盘抽奖机——无JS,全靠现代CSS黑科技!
css·html
全栈老石1 小时前
手写一个无限画布 #3:如何在Canvas 层上建立事件体系
前端·javascript·canvas
晴殇i1 小时前
BroadcastChannel:浏览器原生跨标签页通信
前端·面试
DeathGhost1 小时前
分享URL地址到微信朋友圈没有缩略图?
前端·html
MrBread1 小时前
微任务链式派生阻塞渲染
前端·debug
wuhen_n1 小时前
patch算法:新旧节点的比对与更新
前端·javascript·vue.js
小岛前端1 小时前
Cloudflare 掀桌子了,Next.js 迎来重大变化,尤雨溪都说酷!
前端·vite·next.js