浅谈CSS中/deep/ >>> ::v-deep属性 进行样式穿透

2023-11-19

背景


在开发vue项目中,引入第三方ui组件库,只需要在当前页面修改第三方组件库的样式以做到不污染全局样式。通过在样式标签上使用`scoped`达到样式只制作用到本页面,但是此时再修改组件样式不起作用。

 scoped的作用及实现原理


 作用:当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组件元素。
vue中的scoped属性的效果主要通过PostCSS转译实现,如下是转译前的vue代码:

<style scoped>
.example {
  color: red;
}
</style>
<template>
  <div class="example">hi</div>
</template>

编译后:

<style>
.example[data-v-5558831a] {
  color: red;
}
</style>
<template>
  <div class="example" data-v-5558831a>hi</div>
</template>

所以:PostCSS给一个组件中的所有dom添加了一个独一无二的动态属性。然后,给CSS选择器额外添加一个对应的属性选择器来选择该组件中dom,这种做法使得样式只作用于含有该属性的dom,组件内部的dom。


通过 `::v-deep` 穿透 (推荐)


允许Sass 、Less之类的预处理器正确解析,并且兼容很多属性

<style lang="sass"> 
   ::v-deep 第三方组件类名 { 样式 !important; } 
</style>

通过 `/deep/` 穿透


有些Sass 、Less之类的预处理器无法正确解析 `>>>`。可以使用 `/deep/`操作符( >>> 的别名)

<style lang="sass"> 
   /deep/ 第三方组件类名 { 样式 } 
</style>

在日常使用`/deep/`的时候, `/deep/`在vue 3.0会报错,还需要移除scoped。


通过 `>>>` 穿透scoped

iview中需要`在组件上使用el-class声明第三方组件类名

<style scoped>
    外层 >>> 第三方组件类名{ 样式 }
</style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅谈CSS中/deep/ >>> ::v-deep属性 进行样式穿透 的相关文章

  • 图表.js.如何更改“标签”数组的字体样式?

    我从 Chart JS 库中获取了一个图表 截屏 https i stack imgur com DnuRq png var ctx document getElementById myChart var data labels HTML
  • 将多个 CSS 文件连接成一个

    将多个 CSS 文件连接成一个 CSS 文件的最佳方法是什么 我想减少以下 进入 简单地做cat css css gt css 1 3
  • 平均分配固定大小容器的空间。 Flexbox 的案例?

    如何设计 HTML CSS 结构 将固定大小的容器水平分成三部分 第一部分的高度应与其内容需求一样高 第二部分和第三部分将共享剩余的空间五五十 无论它们的内容如何 如果其内容的大小超过此限制 则该部分应该是可滚动的 它的 HTML 部分很简
  • 为什么内部 DIV 会溢出到外部 DIV 之外?

    我已经远离 HTML 和 CSS 很久了 找不到这个简单问题的解决方案 我有一个 div 位于另一个 div 中 外层黑色 内层橙色 我的 HTML 和 CSS 是 outer position fixed width 30 height
  • 如何使用 github 托管外部 CSS 文件?

    我将 css 上传到 github 然后转到网站上的文件并单击 raw 选项 我尝试将其添加到网页中 但 chrome 给出以下错误 资源解释为样式表 但使用 MIME 类型 text plain 进行传输 https raw github
  • @fontface - 禅宗购物车中的 403 禁止错误

    我不确定这是否是发布此内容的正确位置 因为我不知道问题出在哪里 基本上 字体现在对我来说真的很痛苦 而且没有任何效果 我尝试从 google fonts 加载字体 但遇到了 IE 问题 所以我决定下载它们并自己提供服务 但现在它无法在任何浏
  • 带有覆盖CSS的背景图像

    我如何在 CSS 中设计带有叠加层的背景图像 就像这个示例图像一样 这是代码 我想添加tour类到背景图像和叠加效果 div class tour div class container div class row div class co
  • 仅使用 HTML 和 CSS 制作弧形帆形状?

    是否可以仅使用 HTML 和 CSS 创建下面的弧形帆形状 我可以看到从这个答案 https stackoverflow com questions 7073484 how does this css triangle shape work
  • 粘性背景图像/使用 CSS

    我目前正在创建我的第一个网站 并且即将完成 我在标题下为主体使用背景图像 我发现每个页面都有一个问题 因为它们的高度都不同 这使得我背景图像的当前设置放大图片以适合整个页面 我想做的是将背景图像设置为 粘性 我的想法是 背景图像将直接位于标
  • 如何计算一行中Flexbox项目的数量?

    网格是使用 CSS flexbox 实现的 Example http jsbin com jumosicasi edit html css js output 本示例中的行数为 4 因为我出于演示目的固定了容器宽度 但是 实际上 它可以根据
  • Material-UI 中 Box 和 Grid 有什么区别?

    有什么区别Box https material ui com components box box and Grid https material ui com components grid grid在 Material UI 中 何时使
  • 使文本背景透明但不使文本本身透明

    所以我遇到了问题 我环顾四周 但没有运气 我想让我的身体背景透明 但让文本不透明 就像现在一样 我继续使两者保持相同的不透明度 这是我的代码 charset utf 8 body font 100 1 4 Verdana Arial Hel
  • 如何在node.js中使用express框架提供图像文件?

    在我的应用程序中 我使用 Express 框架来服务客户端文件 但是在为 html 元素提供背景图像时 它显示无法加载给定的 url var express require express http require http var app
  • Bootstrap 4.1 中悬停时的下拉菜单

    我有一个网站 我在其中创建了下拉菜单引导程序4 1 https getbootstrap com docs 4 1 dist css bootstrap min css 此时 下拉菜单正在点击 我用来创建下拉列表的 HTML 代码是 div
  • 位置:粘性滚动仍在移动的元素

    我需要显示类似于表格的内容 其中第一列可以水平滚动 该列会粘滞一段时间 但是当您滚动太多时 它会开始与其余部分一起移动 wrapper width 250px overflow auto display flex flex directio
  • 粉碎一个元素,向随机方向发送碎片

    我试图 粉碎 一个元素 例如 一个图像 并将其碎片朝随机方向飞行 当碎片到达目的地时 即x距离 以像素为单位 它们变成原始图像的较小版本 jQuery UI 的explode http api jqueryui com explode ef
  • 如何更改点击事件上的引导插入符指向方向

    我正在使用 2 3 2 引导程序 因为当我单击菜单按钮时 我可以更改插入符号图标的位置 我需要当我单击图标插入符号向上时 当您单击另一个项目时 插入符号返回到初始状态 这怎么可能 导航代码 div div class container d
  • 上传前如何检查图片的宽度和高度

    对于图片上传 我编写了以下 html 代码
  • 使用 htaccess 重写规则重定向后 CSS 未加载

    我有以下用户个人资料网址的简写 RewriteRule w profile php name of user 1 当我这样做时 该网站使用适当的 css 文件进行样式设置site com name of user 但当我这样做的时候却不是s
  • Firefox 和 Chrome 为 offsetTop 提供了不同的值

    我试图相对于输入字段定位一个跨度元素 让我们称之为 工具提示跨度 为此 我将工具提示跨度和输入字段包装在另一个跨度元素中 我们称之为 包装器跨度 该元素具有position relative 然后我设置position absolute在工

随机推荐

  • vue滚动插件:vue-seamless-scroll

    地址 使用 vue seamless scroll 使用方法 1 下包 yarn add vue seamless scroll 2 局部导入 import vueSeamlessScroll from vue seamless scrol
  • 搜索指定站点和指定文档类型

    对于像我这个不生产代码 只是代码搬运工的程序员来说 搜索引擎是必不可少的 遇到问题 搜索一下 基本都能找到答案 但有时 搜索出来的答案千篇一律 而且垃圾网站一波波 这时就要指定搜索某些 网站 如csdn 1 指定站点 在搜索框里面输入 关键
  • HTTP状态码总结

    为了更好地了解各个状态码代表的意思 做了一个总结 在实际的工作中 主要涉及到的还是200 404 500等 1 HTTP状态码分5大类 状态码 类别 100 199 信息性状态码 200 299 成功状态码 300 399 重定向状态码 4
  • 如何在 wxPython 中创建多个工具栏

    在GUI编程领域 wxPython已经成为一个功能强大且通用的库 使开发人员能够轻松制作令人惊叹的图形用户界面 在众多基本组件中 工具栏在为用户提供对各种功能的快速访问方面发挥着至关重要的作用 在本教程中 我们将深入探讨使用 wxPytho
  • LCD笔记(4)分析内核自带的LCD驱动程序

    1 驱动程序框架 Linux驱动程序 驱动程序框架 硬件编程 在前面已经基于QEMU编写了LCD驱动程序 对LCD驱动程序的框架已经分析清楚 核心就是 分配fb info 设置fb info 注册fb info 硬件相关的设置 1 1 入口
  • 使用AS自带工具转换Java文件为.kt问题总结

    android studio Java项目转kotlin问题总结 起因 崩溃问题 部分类Java 和kotlin api存在差异导致编译时报错 起因 忙里偷闲想学一下kotlin 于是在看了一些kotlin基础以后 把项目拉了个分支 想将J
  • pytorch下import numpy失败_深度学习之Pytorch基础教程!

    关注后 星标 Datawhale 每日干货 每月组队学习 不错过 Datawhale干货 作者 李祖贤 Datawhale高校群成员 深圳大学 随着深度学习的发展 深度学习框架开始大量的出现 尤其是近两年 Google Facebook M
  • lscpu命令详解

    基础命令学习目录首页 一 lscpu输出 使用lscpu查看的结果如下图 这里会显示很多信息 如下 使用lscpu p会详细的numa信息 如下 root localhost lscpu p The following is the par
  • 【Mongodb教程 第五课 】MongoDB 删除集合

    drop 方法 MongoDB 的 db collection drop 是用来从数据库中删除一个集合 语法 drop 命令的基本语法如下 db COLLECTION NAME drop 示例 首先 检查可用的集合在数据库 mydb gt
  • 简单混合运算计算器

    实现一个能够进行简单混合运算的计算器 要求对混合运算的表达式进行先乘除后加减运算 其实现的效果如下图所示 小练习 GUI窗体 面向对象思路 代码 Expression类 package 计算器 import java util Linked
  • 使用R语言实现卷积神经网络cnn进行图像识别

    目录 1 卷积神经网络 CNN 简介 2 安装和加载必要的R包 3 加载和处理数据 4 构建CNN模型
  • 攻防 & 渗透 & Kali笔记(持续更新)

    0x00 写在前面 本来是记录kali用法的一篇文章 后来就慢慢变成了记录攻防 渗透测试 Kali用法的文章了 本来信息安全就涉及到方方面面就是个大杂烩 0x01 John the Ripper john爆破需要一个shadow文件 推荐使
  • Python-import导入上级目录文件

    假设有如下目录结构 dir0 file1 py file2 py dir3 file3 py dir4 file4 py dir0文件夹下有file1 py file2 py两个文件和dir3 dir4两个子文件夹 dir3中有file3
  • IDEA太强悍了!java初级工程师工资多少

    所以 我认为在你选择之前不妨好好想想什么是Java 你适不适合从事这份工作 Java开发是近20多年来最热门的编程语言 就业市场确实比较大 入门的难度也比C和C 要低 结合各方面来说 你选择Java是一定没有问题的 接下来就要好好想想自己适
  • 经典网络ResNet介绍

    经典网络ResNet Residual Networks 由Kaiming He等人于2015年提出 论文名为 Deep Residual Learning for Image Recognition 论文见 https arxiv org
  • 【githubshare】30 天精通 Git 版本管理,主要介绍 Git 的一些常用操作,以及日常工作中实际应用场景讲解

    GitHub 上一份开源的 Git 教程 30 天精通 Git 版本管理 主要介绍 Git 的一些常用操作 以及日常工作中实际应用场景讲解 GitHub github com doggy8088 Learn Git in 30 days 外
  • openssh升级

    openssh下载链接 https ftp openbsd org pub OpenBSD OpenSSH portable 查看ssh版本 ssh V OpenSSH 9 0p1 OpenSSL 1 0 2k fips 26 Jan 20
  • 列表标签使用

    列表标签分为有序列表和无序列表 什么时候使用列表标签 列表也是用来布局使用 它的自由度相对表格来说要大一点 但是它也是可以整齐排列 1 有序列表使用 ol li 苹果 li li 菠萝 li li 香蕉 li ol 2 无序列表 ul li
  • C++学习心得

    C 学习心得 一周的C 学习结束了 从C 的简介 各种专业术语的介绍到最后的标准模板库 对于这个c的加强版的语言有了一定的认识理解 但是由于6天时间学完了全部 而且由于疫情在家里上了两天网课 对于一些运用层次还不是很熟悉 学的重点放在了面向
  • 浅谈CSS中/deep/ >>> ::v-deep属性 进行样式穿透

    背景 在开发vue项目中 引入第三方ui组件库 只需要在当前页面修改第三方组件库的样式以做到不污染全局样式 通过在样式标签上使用 scoped 达到样式只制作用到本页面 但是此时再修改组件样式不起作用 scoped的作用及实现原理 作用 当