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

vue | 样式隔离scoped的原理 样式穿透deep的原理

文章目录

  • vue中的样式穿透
    • scoped 样式隔离
      • 父组件可以修改子组件根节点样式
    • deep 样式穿透
      • :deep(.el-col)的原理

vue中的样式穿透

scoped 样式隔离

一个style标签拥有scoped属性时,css样式就只能作用于当前的组件,这样就可以使得组件之间的样式不互相污染。如果一个项目中的所有style标签全部加上了scoped,相当于实现了组件的私有化,样式的模块化。

原理
scope的本质是分别给 HTML 标签和 CSS 选择器添加 data-v-xxx,来达到样式隔离的效果。

  1. 选中的标签中添加属性data-v-hash
  2. 样式选择器在后面追加data-v-hash的属性选择器
    在这里插入图片描述

样式穿透问题
使用 scoped 后,父组件是没有办法修改子组件中的样式(除了子组件根节点)

  • 父组件的样式将不会渗透到子组件中
  • 父组件可以修改子组件根节点样式

父组件可以修改子组件根节点样式

如果在父组件中设置样式div span,那么父组件该样式的优先级高一点,所以span是黑色

//父组件css
span{color: black;
}//子组件html
<template><span >子组件</span>
</template>//子组件css
.children span{color: blue;
}

在这里插入图片描述

//父组件css
div .children span{color: black; //样式没生效
}//子组件html
<div class="children"><span >子组件</span>
</div>//子组件css
.children span{color: blue;
}

此时,父组件的样式没有生效
在这里插入图片描述

deep 样式穿透

作用:scoped的样式可以作用得更深,比如影响子组件。

vue2中穿透的方法:::v-deep

>>> /deep/已弃用。

::v-deep .el-col {margin-bottom: 20px;
}

vue3穿透的方法:deep(.className)
官方推荐:deep(.el-col)深度选择器。

::v-deep(.el-col) {margin-bottom: 20px;
}// 缩写
:deep(.el-col) {margin-bottom: 20px;
}

:deep(.el-col)的原理

在上面的案例中,.children是子组件的根元素可以获取到,我们也可以看见.children标签上有子组件的hash值。所以需要穿透的是span属性。

//父组件
div .children :deep(span){color: black;
}//解析出来时
div .children[data-v-7a7a37b1] span{color: black;
}

由此可见:deep()的原理就是在前面添加[data-v-hash]

所以如果使用deep的样式节点没有父节点,这种用法是没有意义的。使用deep之后解析的代码为[data-v-hash] 节点
原因是没有父节点说明本身就是该组件的根元素,那么父组件可以修改其样式

相关文章:

vue | 样式隔离scoped的原理 样式穿透deep的原理

文章目录 vue中的样式穿透scoped 样式隔离父组件可以修改子组件根节点样式 deep 样式穿透:deep(.el-col)的原理 vue中的样式穿透 scoped 样式隔离 一个style标签拥有scoped属性时&#xff0c;css样式就只能作用于当前的组件&#xff0c;这样就可以使得组件之间的样式不互相污…...

UML,集合框架

1.什么是UML UML是统一建模语言的简称&#xff0c;它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明&#xff0c;展示&#xff0c;构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法&#xff0c;是开发面向对象软件…...

如何快速轻松自动添加微信好友?

有些客需要换新的微信号&#xff0c;想把以前微信号上的好友全部加回来&#xff0c;但是因为微信系统的规定&#xff0c;频繁加好友容易被封号&#xff0c;而且手动添加好友太费时费力&#xff0c;还要控制加好友的间隔时间。那么有没有什么方法可以快速轻松自动添加好友呢&…...

MySQL高级语句(第一部分)

MySQL高级语句(第一部分)一、MySQL进阶查询1、select ----显示表格中一个或数个字段的所有数据记录2、distinct ----不显示重复的数据记录3、where ----有条件查询4、and or ----且 或5、in ----显示已知的值的数据记录6、between ----显示两个值范围内的数据记录7、通配符8、l…...

Perl区分文件换行符类型

背景 在Windows上使用Perl判断文件时何种换行符时&#xff0c;处理CR LF类型的换行符时&#xff0c;也识别成了LF。 思路 Windows上的换行是 CRLF , Unix上是 LF , Mac CR在Windows平台使用Perl读取文件创建文件句柄时&#xff0c;未对file handler设置binmode&#xff0c;了…...

数据备份文件生成--根据表名生成对应的sql语句文件

最近客户有个需求&#xff0c;希望在后台增加手动备份功能&#xff0c;将数据导出下载保存。 当然&#xff0c;此方法不适用于海量数据的备份&#xff0c;这只适用于少量数据的sql备份。 这是我生成的sql文件&#xff0c;以及sql文件里的insert语句&#xff0c;已亲测&#x…...

进程同步与互斥

目录 进程同步与互斥&#xff08;1&#xff09; 第一节、进程间相互作用 一、相关进程和无关进程 二、与时间有关的错误 第二节、进程同步与互斥 一、进程的同步 二、进程的互斥 三、临界区 进程同步与互斥&#xff08;2&#xff09; 三、信号量与P、V操作的物理含义…...

mysql workbench常用操作

1、No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar 方法一&#xff1a;双击你要使用的库 方法二&#xff1a;USE 数据库名 2、复制表名&#xff0c;字段名 3、保存链接...

【操作】国标GB28181视频监控EasyGBS平台更新设备信息时间间隔

国标GB28181协议视频平台EasyGBS是基于GB28181协议的视频监控云服务平台&#xff0c;可支持多路设备同时接入&#xff0c;并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音对讲、平台…...

TensorFlow入门(八、TensorBoard可视化工具的应用)

TensorBoard常用函数和类http://t.csdn.cn/Hqi9c TensorBoard可视化的过程: ①确定一个整体的图表,明确从这个图表中获取哪些数据的信息 ②确定在程序的哪些节点、以什么样的方式进行汇总数据的运算,以记录信息,比如在反向传播定义以后,使用tf.summary.scalar记录损失值的变…...

升级targetSdkVersion至33(以及迁移至Androidx)

1.设置 android.useAndroidXtrue 和 android.enableJetifiertrue 2.一键迁移至androidx&#xff1a;Refactor -> Migrate to Androidx 3.手动修改未能自动迁移到androidx的部分&#xff1a; android.support.v4.view.ViewPager.PageTransformer -> androidx.viewpager.wi…...

python3.11版本pip install ddddocr调用时报错got an unexpected keyword argument ‘det‘ 解决

一、如图出现如下问题 ddddocr.__init__() got an unexpected keyword argument det出现问题原因&#xff1a;python3.11默认安装版本就旧版的ddddocr1.0的&#xff0c;所以导致如下报错 二、解决方案一&#xff08;推荐&#xff09; python3.11的环境直接安装这个即可&…...

代理IP与Socks5代理:跨界电商之安全防护与智能数据引擎

第一部分&#xff1a;跨界电商的兴起与网络安全挑战 1.1 跨界电商的崭露头角 跨界电商已经成为全球贸易的新引擎&#xff0c;企业纷纷踏上了拓展国际市场的征程。 1.2 网络安全的不容忽视 跨界电商的增长也伴随着网络安全威胁的增加。黑客攻击、数据泄露和欺诈行为等风险呈…...

如何评估一个HR是否专业?看这些标准

HR在遇到优秀的人才时&#xff0c;以往的招聘中&#xff0c;我们总以惯性思维寻找吸引人才的突破口&#xff0c;诸如体现薪酬优厚、突出平台优势甚至提高面试话术等&#xff0c;却忽略了面试官本人的人格魅力&#xff0c;本身就是公司招聘的形象代言&#xff0c;因为优秀的面试…...

WordPress主题开发( 八)之—— 模板循环详细用法

WordPress 主题开发教程手册 — 模板循环 WordPress 主题开发中&#xff0c;模板循环是一个非常关键的概念&#xff0c;它负责默认机制来输出文章内容。模板循环会遍历当前页面获取的所有文章&#xff0c;然后使用主题中的模板标签将它们格式化并输出。 模板循环的应用 Word…...

QT : 完成绘制时钟

1.头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QTimer> #include <QTime> #include <QPaintEvent> #include <QDebug> #include <QBrush>QT_BEGIN_NAMESPACE namespace Ui { class…...

香港云服务器和日本云服务器哪个好?(详细对比)

​  购置海外服务器时&#xff0c;您是在乎网络速度?价格?稳定性?当这几个因素同时存在&#xff0c;我们该如何选择?本篇针对海外热门的两个地区&#xff0c;中国香港和日本&#xff0c;这两种云服务器谁优谁劣?各有什么亮点?逐一进行对比分析。 一、速度上来看 中国香…...

Cross Attention和 Self- Attention 的区别?

Cross Attention和Self-Attention都是深度学习中常用的注意力机制&#xff0c;用于处理序列数据&#xff0c;其中Self-Attention用于计算输入序列中每个元素之间的关系&#xff0c;Cross Attention则是计算两个不同序列中的元素之间的关系。它们的主要区别在于计算注意力分数时…...

《从零开始的Java世界》02面向对象(基础)

《从零开始的Java世界》系列主要讲解Javase部分&#xff0c;从最简单的程序设计到面向对象编程&#xff0c;再到异常处理、常用API的使用&#xff0c;最后到注解、反射&#xff0c;涵盖Java基础所需的所有知识点。学习者应该从学会如何使用&#xff0c;到知道其实现原理全方位式…...

pve关闭windows虚拟机慢

背景&#xff1a; 在web界面关闭windows虚拟机一直转圈&#xff0c;使用命令行关闭报错 qm stop 155 trying to acquire lock... cant lock file /var/lock/qemu-server/lock-155.conf - got timeout解决 删除lock&#xff0c;然后用命令行重新关闭 rm /var/lock/qemu-serve…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...