当前位置: 首页 > article >正文

vue3样式穿透用法

在Vue3中,样式穿透可通过以下方式实现:

1. 基础用法

使用::v-deep伪类实现样式穿透(兼容Vue2语法):

.parent ::v-deep .child-component {color: red;
}

2. 推荐方式

使用:deep()伪函数(Vue3推荐写法):

.parent :deep(.child-component-inner) {padding: 10px;
}

3. 插槽内容样式

使用:slotted()处理插槽内容:

:slotted(.slot-content) {background: #f0f0f0;
}

4. 全局样式

在scoped样式中定义全局规则:

:global(.global-class) {font-size: 16px;
}

5. 动态选择器

结合属性选择器使用:

:deep([data-test="item"]) {border: 1px solid blue;
}

使用场景示例

<template><el-dialog><div class="custom-content">需要定制的弹窗内容</div></el-dialog>
</template><style scoped>
/* 修改Element Plus弹窗标题 */
:deep(.el-dialog__header) {background: #409eff;
}/* 定制插槽内容样式 */
:slotted(.custom-content) {font-weight: bold;
}
</style>

注意事项

  1. 优先考虑组件props/custom class设计
  2. 避免过度使用样式穿透
  3. 注意样式优先级问题
  4. 使用scoped限定作用域
  5. 在Vue3中已废弃/deep/>>>语法

推荐结合CSS变量使用更灵活的样式定制方案:

:deep(.child-component) {--theme-color: #42b983;color: var(--theme-color);
}

http://www.lryc.cn/news/2384360.html

相关文章:

  • Puppeteer 浏览器自动化操作工具
  • 5G 网络寻呼的信令及 IE 信息分析
  • 信奥赛CSP动态规划入门-最小硬币问题
  • cmd里可以使用npm,vscode里使用npm 报错
  • JAVA开发工具延长方案
  • CSS 浮动(Float)及其应用
  • CC53.【C++ Cont】一维前缀和
  • Python爬虫实战:研究Grab 框架相关技术
  • 每日leetcode
  • YouTube视频字幕转成文章算重复内容吗?
  • 网络学习-利用reactor实现http请求(六)
  • 云原生安全:IaaS安全全解析(从基础到实践)
  • 【IC_Design】跨时钟域的寄存器更新后锁存
  • Spring AI 之提示词
  • 亚远景-汽车软件开发的“升级之路”:ASPICE各等级说明
  • Java微服务架构:Spring Cloud全栈指南,附最新Demo源码,可独立运行!
  • 使用LLaMA-Factory微调ollama中的大模型(一)------家用电脑安装LLaMA-Factory工具
  • 支持向量机(SVM):分类与回归的数学之美
  • 手撕I2C和SPI协议实现
  • 人工智能+:职业价值的重构与技能升级
  • JVM部分内容
  • paddlehub搭建ocr服务
  • python-leetcode 68.有效的括号
  • 人性的裂痕:社会工程学如何成为网络安全的隐形战场
  • ObservableCollection序列化,和监听链表内元素变化
  • NLP学习路线图(四):Python编程语言
  • matlab实现无线通信组
  • 基于单片机的室内采光及可燃气体泄漏报警装置设计
  • Serverless爬虫架构揭秘:动态IP、冷启动与成本优化
  • 从单体到分布式:深入解析Data Mesh架构及其应用场景与价值