CSS中 ::deep 作用,使用场景,使用方法介绍

::deep 是 Vue 中 scoped 样式的一个穿透语法,它的核心作用是:强制让父组件的样式穿透子组件的根节点或内部元素,从而覆盖子组件或第三方 UI 库的样式。

作用

当给

使用场景

  1. 修改第三方 UI 库:直接修改 Element Plus、Vant 等库的内部样式,这些样式通常不受 scoped 影响。
  2. 修改子组件根节点:父组件需要调整子组件最外层容器的布局(如边距、宽度)。
  3. 修改子组件内部深层元素:子组件内部结构复杂,需要穿透多层选择器进行样式覆写。

使用方法

  1. 修改子组件根节点
css 复制代码
/* 父组件 */
<style scoped>
/* 作用于子组件 MyComponent 的根元素 */
::deep(.child-component) {
  border: 1px solid red;
}
</style>
  1. 修改子组件内部深层元素
css 复制代码
<style scoped>
/* 作用于子组件内部的 .header 元素 */
::deep(.child-component .header) {
  background-color: blue;
}
</style>
  1. 针对 UI 库动态类名
css 复制代码
<style scoped>
/* 覆盖 Element Plus 的输入框样式 */
::deep(.el-input__wrapper) {
  box-shadow: 0 0 0 1px #ff0000 inset;
}
</style>

注意:早期 Vue 2 中使用的 /deep/ 或 >>> 已被废弃,统一使用 ::deep。如果你在使用 scss 等预处理器,写法不变。

如果项目未使用 scoped,则不需要 ::deep,直接编写全局样式即可覆盖。

相关推荐
浮生望15 分钟前
React 受控与非受控组件:从表单状态管理到实时校验的完整实践
前端
糖墨夕1 小时前
第二章:AI Agent 到底是个啥?—— 用生活场景把概念讲明白
前端
Csvn1 小时前
⚡ content-visibility: auto —— 长页面渲染提速的隐藏神器,白捡的性能优化
前端
用户938515635071 小时前
深入理解 Next.js:从 SPA 的 SEO 问题到约定式路由与 SSR 原理
前端·后端·全栈
snow@li2 小时前
web:前端500知识点/速查手册
前端
kyriewen3 小时前
今年裁了16万技术人——但字节前端岗反而涨了23%
前端·javascript·面试
用户059540174463 小时前
把 AI Agent 记忆存储验证从 40 分钟手测压到 3 分钟,pytest + Docker 这套组合太顶了
前端·css
stereohomology4 小时前
MS Edge很多事的一点是把地址栏复制的地址自动转标题文本
前端·edge
imaol14 小时前
链表 -- 环链表
java·前端·链表
imaol14 小时前
链表 -- 双向链表
java·前端·链表