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,直接编写全局样式即可覆盖。

相关推荐
m0_敲代码的彭于晏1682 小时前
Vercel 前端部署平台深度评测
前端
2301_32241428042 小时前
基于SpringBoot+Vue的休闲零食超市管理系统的设计与实现59004-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·vue.js·spring boot·redis·mysql·决策树·推荐算法
怕浪猫3 小时前
外包和大厂的前端代码,差在凌晨三点
前端·面试·github
m0_敲代码的彭于晏1684 小时前
Vercel 前端部署与全栈开发实战指南
前端·状态模式
徐小夕4 小时前
花了3个月,我们做了一款 AI 版的“飞书文档”
前端·算法·github
贾伟康4 小时前
【化学实验室|17】HarmonyOS ArkTS 亮暗色与视觉令牌实战:集中颜色、间距和交互状态避免页面割裂
前端·移动开发·harmonyos·arkts·arkui
Csvn5 小时前
SSR/SSG/ISR(上):峡谷与渲染策略的时间预算
前端
Csvn5 小时前
SSR/SSG/ISR(下):可交互性、新鲜度与回源账
前端
Elcker7 小时前
YnuoAgent(依诺):一个 npm 包,跑起属于自己的 AI 研发平台
前端·人工智能·npm
酷炫码神8 小时前
Day 8|Vue3 响应式:告别手动操作 DOM,让数据驱动界面
javascript·vue.js·ecmascript