scoped属性和深度选择器

在Vue单文件组件(SFC)中,为了防止样式全局污染,可以给

所有的scoped的css编译出来都会变成.class[哈希值]的形式
在这里插入图片描述

我们只能修改带data-v-0dca3a9a作用域的样式,像是
在这里插入图片描述

如果修改el-table的宽度

.el-table {
  width: 600px;
}

原宽度
在这里插入图片描述

修改后
在这里插入图片描述
修改表头el-table__header这种是无法直接修改的,
如果你想在带有scoped的CSS中修改一个子组件或者第三方组件的样式,你可以采用以下几种方法:

修改方式一:深度选择器

Vue2通过深度选择器(>>> 或 /deep/ 或::v-deep)

在这里插入图片描述

::v-deep .el-table__header {
  height: 80px;
}

在这里插入图片描述

在Vue.js中,/deep/ 和 ::v-deep 都是用来实现样式穿透(style scoping escape hatch)的语法,它们都允许你编写能够影响到组件内部深>层元素的CSS样式。但在不同版本和环境下的支持情况有所不同:

  1. /deep/: /deep/ 是旧版Web Components Shadow DOM规范中的选择器,也被称为深度组合器,它允许样式穿透Shadow DOM边界。然而,在Vue中,即使没有使用实际的Shadow DOM,/deep/ 也被用来穿透组件作用域样式的限制。
  2. ::v-deep: Vue 2.x 中后期以及Vue 3.x 中,由于浏览器对 /deep/ 的支持逐渐废弃,Vue推荐使用 ::v-deep 作为替代方案来达到同样的效果。::v-deep 是Vue专为了解决组件样式隔离问题而提供的伪类选择器。
    尽管两者在功能上相似,但需要注意的是,在不同的构建环境下,例如当使用Sass或Less等预处理器时,可能需要采用特定的语法才能正确编译。
    例如,在某些sass编译器如dart-sass中,/deep/ 已不再被支持,必须使用 ::v-deep。
    综上所述,在现代Vue项目中,你应该优先使用 ::v-deep 来穿透组件样式作用域

Vue3通过:deep()

在Vue3以及支持它的框架,如Vite、Vue CLI中都可以使用:deep()组合器实现类似功能

<style scoped>
  .component:deep(.child-element){
    color:red;
  }
</style>

修改方式二:全局样式和局部样式相结合

创建一个不带scoped属性的

修改方式三:自定义类名结合style module

如果第三方组件允许添加自定义类名,可以在使用该组件时为其添加额外的类名

  <!-- Vue 组件模板 -->
   <template>
     <third-party-component class="custom-class" />
   </template>

   <style>
    .custom-class {
      color: red;
    }
   </style>

但是需要注意的是style一定不能是scoped,否则不起作用。那这样还是一个全局样式,还是会有样式冲突的风险,怎么办呢?
如果想解决这个问题,可以使用

<template>
  <div class="detail-popover" :class="$style.detailPopover">
    <!-- 组件内容 -->
  </div>
</template>

<style module>
.detail-popover {
  min-width: 20px;
  padding: 10px;
  text-align: center;
}
</style>

在这个例子中,.detail-popover 类会被转换为一个哈希值(如 .detail-popover_abc123),然后该哈希值作为组件实例的一个 $style 对象上的属性。
由于这个哈希值是全局唯一的,所以不会跟其他全局样式冲突,
举个elementUI的例子

<el-popover trigger="hover" content="详情" :popper-class="$style['detail-popover']">
  <svg slot="reference" class="iconfont" @click="handleDetail(scope.row)" aria-hidden="true">
    <use xlink:href="#icon-1" />
  </svg>
</el-popover>
<style module>
  .detail-popover {
    min-width: 20px;
    padding: 10px;
    text-align: center;
  }
</style>

效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/349832.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开发AI软件,构建多用户AIGC系统,实现图文创作及源码交付

在AI技术不断进步的今天&#xff0c;AI软件开发已成为一个热门的领域。而多用户AIGC系统作为AI软件开发的重要项目之一&#xff0c;呈现出极大的潜力和前景。 多用户AIGC系统旨在为用户提供一个全面的图文创作平台&#xff0c;借助AI的力量&#xff0c;使创作过程更加智能化和…

python写一个彩票中奖小游戏修订版本

先说规则&#xff1a; print("下面介绍双色球颜色规则:")print("一等奖,投注号码与当期开奖号码全部相同&#xff08;顺序不限&#xff0c;下同&#xff09;&#xff0c;即中奖")print("二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖&q…

Unity动画桢事件

1&#xff0c;使用原因 在新项目内部审核的时候&#xff0c;说什么动画节奏不匹配&#xff0c;所以决定用动画桢事件来处理技能释放。当释放技能的时候&#xff0c;先播放技能动画&#xff0c;然后再动画桢所在的时间戳执行技能的逻辑。 2&#xff0c;具体实现 1&#xff0c;…

openlayers+vue实现缓冲区

文章目录 前言一、准备二、初始化地图1、创建一个地图容器2、引入必须的类库3、地图初始化4、给地图增加底图 三、创建缓冲区1、引入需要的工具类库2、绘制方法 四、完整代码总结 前言 缓冲区是地理空间目标的一种影响范围或服务范围,是对选中的一组或一类地图要素(点、线或面…

跟着顶刊学科研绘图——nature配色篇(三)

只有朝着100分学习&#xff0c;才能想出80分的想法。 今日继续一起跟着nature培养科研绘图配色的美感。 三色对比 四色对比 五色对比 今日感悟 四色对比中&#xff0c;红蓝一定存在&#xff01; 关注公众号“魔方科研”&#xff0c;随时随地获取您想要的科研信息。 参考文献…

虹科数字化与AR部门升级为安宝特AR子公司

致关心虹科AR的朋友们&#xff1a; 感谢您一直以来对虹科数字化与AR的支持和信任&#xff0c;为了更好地满足市场需求和公司发展的需要&#xff0c;虹科数字化与AR部门现已升级为虹科旗下独立子公司&#xff0c;并正式更名为“安宝特AR”。 ”虹科数字化与AR“自成立以来&…

《佛法修学概要》005-008集研讨

5、我們怎樣才能做到不隨妄轉&#xff0c;找修行的捷徑&#xff1f; 如果說要進步快&#xff0c;你要先找到你生命的原點&#xff0c;就是《楞嚴經》說的&#xff0c;你從什麼地方來&#xff1f;這個道理太重要了&#xff01;就是你要住在什麼角度。如果你住在妄想的角度來處理…

第十九周周报

文章目录 摘要文献阅读DeepHuman: 3D Human Reconstruction from a Single Image(ICCV 2019)贡献摘要网络结构总结 PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization贡献摘要网络结构总结 Animated 3D human avatars from a single imag…

已解决Error:AttributeError: module ‘numpy‘ has no attribute ‘bool‘.

文章目录 引言报错分析解决方案1&#xff1a;降低NumPy版本解决方案2&#xff1a;更改NumPy源码 结尾 引言 在Python编程的世界里&#xff0c;NumPy无疑是一个不可或缺的库。它不仅在处理大规模数值计算中发挥着核心作用&#xff0c;而且为众多开发者提供了强大的支持。然而&a…

自然语言处理--双向匹配算法

自然语言处理作业1--双向匹配算法 一、概述 双向匹配算法是一种用于自然语言处理的算法&#xff0c;用于确定两个文本之间的相似度或匹配程度。该算法通常使用在文本对齐、翻译、语义匹配等任务中。 在双向匹配算法中&#xff0c;首先将两个文本分别进行处理&#xff0c;然后…

Redis核心技术与实战【学习笔记】 - 1.Redis为什么高性能

作为键值数据库&#xff0c;Redis 的应用非常广泛&#xff0c;如果你是后端工程师&#xff0c;我猜你出去面试&#xff0c;八成都会被问到与它相关的性能问题。比如说&#xff0c;为了保证数据的可靠性&#xff0c;Redis 需要在磁盘上读写 AOF 和 RDB&#xff0c;但在高并发场景…

WPF入门到跪下 第十一章 Prism(四)View与ViewModel的自动关联

View与ViewModel的自动关联 一、ViewModelLocator 在学习MvvmLight框架时&#xff0c;也使用了ViewModelLocator类。但在MvvmLight框架中&#xff0c;ViewModelLocator只是一个自定义类&#xff0c;与框架无关&#xff0c;目的就是初始化IoC容器。而在Prism框架中则不同&…

机房及设备安全智慧监管AI+视频方案的设计和应用

一、背景分析 随着互联网的迅猛发展&#xff0c;机房及其配套设施的数量持续攀升&#xff0c;它们的运行状况对于企业运营效率和服务质量的影响日益显著。作为企业信息化的基石&#xff0c;机房的安全监测与管理的重要性不容忽视。它不仅关乎企业的稳定运营&#xff0c;同时也…

elementui-table组件列表中的tooltip内容过长超出屏幕换行显示

elementui-table组件列表中的tooltip内容过长超出屏幕换行显示 el-table列属性中带的有show-overflow-tooltip&#xff0c;可以设置内容超出列宽度显示为…&#xff0c;并且有tooltip提示&#xff0c;但是内容过多时&#xff0c;提示会超出屏幕&#xff1a; 但是el-table组件…

Vue 3.0中Treeshaking特性(详细解析)

文章目录 一、是什么二、如何做Vue2 项目Vue3 项目 三、作用参考文献 一、是什么 Tree shaking 是一种通过清除多余代码方式来优化项目打包体积的技术&#xff0c;专业术语叫 Dead code elimination 简单来讲&#xff0c;就是在保持代码运行结果不变的前提下&#xff0c;去除…

逆向 jsvmp 之_signature实例

预备:a.v_jstools 插件,用来解析混淆 b.浏览器启动本地替换 c.nodejs 用来快速调试js 准备好后开搞: 1.首先找到 jsvmp入口点 2.用v_jstools解析混淆,再次刷新,进入入口,找到循环点 3.打日志,分析代码功能

察势而动,破界争先!COSP深圳户外电源展2024重磅开幕!

随着国内疫情逐渐消退&#xff0c;中央政府积极出台了一系列恢复民生的政策。其中&#xff0c;“地摊经济”的火爆&#xff0c;成为了人们茶余饭后的热门话题。这个政策的出台&#xff0c;不仅推动了地摊经济的发展&#xff0c;也让户外电源市场迎来了新的机遇。 随着户外电源产…

Git标签推送

标签默认属于本地分支&#xff0c;推送分支的时候并不会上传。需要自己手动推送 通过命令 git push origin <tagname>推送指定的标签 通过命令git push origin --tags批量推送所有的标签 在VS里打开git命令行窗口的方法&#xff1a;Git更改-操作-打开命令行提示符 对于…

【java】常见的面试问题

目录 一、异常 1、 throw 和 throws 的区别&#xff1f; 2、 final、finally、finalize 有什么区别&#xff1f; 3、try-catch-finally 中哪个部分可以省略&#xff1f; 4、try-catch-finally 中&#xff0c;如果 catch 中 return 了&#xff0c;finally 还会执行吗&#…

【C++】入门

结束数据结构初阶的学习后&#xff0c;很高兴继续学习C&#xff0c;欢迎大家一起交流~ 目录 C关键字 命名空间 命名空间定义 命名空间使用 C输入&输出 缺省参数 缺省参数概念 缺省参数分类 函数重载 函数重载概念 C支持函数重载的原理--名字修饰 引用 引用概念…