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

vue的css深度选择器 deep /deep/

作用及概念

        当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素,父组件的样式将不会渗透到子组件。在vue中是这样描述的:

        处于 scoped 样式中的选择器如果想要做更“深度”的选择,也即:影响到子组件,可以使用 :deep() 这个伪类:

举个简单的栗子,假设这里有一个element的组件,我们需要改动它的外边距

        <el-selectv-model="id"placeholder="选择登录"size="large"style="width: 240px"><el-optionv-for="item in users":key="item.id":label="item.name":value="item.id"/></el-select>

        我们可用使用浏览器的f12工具查看元素

        可以使用它的类名,但是这样是不行的,因为我们加上了 scope,为了让样式不会污染到其他的组件。

<style lang="scss" scoped>.el-select__wrapper {margin-top: 10%;}
}

解决方案

通常,会有两种处理方法:

  1. 将scoped属性去掉。样式生效了,但是这种写法是作用到全局的,非常容易污染全局样式。这种写法,其实等同于写在全局样式文件中。

  2. 保留scoped属性,使用深度选择器,代码如下

我们有4种写法

1、::v-deep

<!-- 写法1 使用::v-deep -->
<style lang="scss" scoped>::v-deep .el-select__wrapper {margin-top: 10%;}
}

        👆这种写法在vue3已经弃用,用这种写法的话会给出如下警告

[@vue/compiler-sfc] ::v-deep usage as a combinator has been deprecated. Use :deep(<inner-selector>) instead.

2、>>> 操作符

<!-- 写法2 使用>>> 操作符-->
<style lang="scss" scoped>
>>>.el-select__wrapper {margin-top: 10%;
}
<style>

        👆这种写法在浏览器兼容性问题,所以一般也不推荐使用

3、/deep/

<!-- 写法3 使用/deep/ -->
<style lang="scss" scoped>/deep/.el-select__wrapper {margin-top: 10%;
}
<style>

        👆这种写法不支持sass预处理器,也不推荐使用

4、:deep(<inner-selector>)

<style lang="scss" scoped>:deep(.el-select__wrapper) {margin-top: 10%;}
</style>

总结

        当我们遇到需要在一个组件中想要影响到子组件,就可以使用深度选择器,而::v-deep 在vue3中已经启用了 /deep/ 和 >>>  有存预处理器不支持和浏览器兼容为题,综上所述,使用:deep(<inner-selector>)是最佳的解决方案。

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

相关文章:

  • 2024年华为OD机试真题-计算三叉搜索树的高度-(C++)-OD统一考试(C卷D卷)
  • # ERROR: node with name “rabbit“ already running on “MS-ITALIJUXHAMJ“ 解决方案
  • class常量池、运行时常量池和字符串常量池详解
  • Meilisearch使用过程趟过的坑
  • 全面升级企业网络安全 迈入SASE新时代
  • 2024.1IDEA 到2026年
  • uniapp——点赞、取消点赞
  • react经验15:拖拽排序组件dnd-kit的使用经验
  • Webpack模块联邦:微前端架构的新选择
  • CMake 学习笔记(访问Python)
  • 【ruoyi】docker部署 captchaImage接口 FontConfiguration空指针异常
  • P1443 马的遍历
  • AI学习指南概率论篇-贝叶斯推断
  • 大数据测试
  • 金融业开源软件应用 管理指南
  • SolidWorks 齿轮配合
  • 鸿蒙开发-ArkTS语言-XML
  • 网安面经之文件上传漏洞
  • 如何使用 WavLM音频合成模型
  • 学习java第六十七天
  • Linux(Ubuntu24.04) 安装 MinIO
  • 视频汇聚边缘网关EasyCVR硬件设备无法访问域名,解析失败该如何处理?
  • 差速机器人模型LQR 控制仿真(c++ opencv显示)
  • 探索设计模式的魅力:权力集中,效率提升,中心化模式的优势与挑战
  • uniapp0基础编写安卓原生插件之编写安卓页面在uniapp上显示(摄像头调用)
  • fastapi数据库连接池的模版
  • 如何批量将十六进制数据转成bin文件
  • 知识付费程序源码_30秒轻松搭建知识付费小程序_免费试用,知识付费工具有哪些?哪个比较好用?
  • 【系统架构师】-案例篇(九)容器化、CDN与微服务
  • OpenAI工作原理及核心机制