scoped

在了解scoped属性之前,先了解一下Vue(中的插件)在渲染DOM时干了什么。Vue在渲染DOM后会在DOM节点上生成一个随机串data属性,这一属性给了当前组件下的DOM一种唯一标识。

当在style标签中加入scoped属性后,在页面渲染完毕后,style下所有的CSS都会自动转换,在过滤器上添加与DOM相同的data属性值。也就是说,从结果来看,scoped属性让CSS只对当前组件中的元素起作用,防止了CSS全局污染。

要注意,scoped修饰后的CSS过滤器只对编译器中写入的元素起作用(其实就是只作用于当前组件元素)。比如,如果你使用了element组件库,在编译器中写入的是,但是在渲染页面后,input元素的类为“el-input__inner”,此时,你在scoped属性的style中写入“.el-input__inner”是无法起到作用的,因为当前组件中并没有类名为el-input__inner的元素。

>>> /deep/ ::v-deep

那如果我们要修改这类元素该怎么办呢?我们可以去掉scoped属性,这样作用域就不会局限于当前组件了。可是去掉会造成全局样式污染,如何才能既不去掉scoped,又能够修改element元素的样式呢?

一种省事的方法是,scoped属性的style和无属性的style并用。另一种方法是,在scoped属性的style中进行样式穿透。

/deep/和“>>>”的二者作用是一样的,针对于不同的css预处理器——例如sass 不能解析 “>>>”属性——的情况下可以使用/deep/,它是">>>"的别名,原理相同。

注意:样式穿透只能向子级元素穿透,不能向父级元素穿透。

1.>>>

如果项目使用的是css原生项目,可以直接用 >>> 进行穿透。

<style scoped>
/*编译前*/
.a >>> .b { /* ... */
}/*编译后*/
.a[data-v-f3f3eg9] .b { /* ... */ }
</style>

2./deep/

项目中用到了预处理器scss、sass、less,操作符>>>可能会因为无法编译而报错。此时可以使用 /deep/。
注意:vue-cli3以上版本不可以使用

<style lang="scss" scoped>
/*用法1*/
.a {/deep/ .b { /* ... */}
}
/*用法2*/
.a /deep/ .b { /* ... */}
</style>

3.::v-deep

如果使用了预处理器,都可以使用 ::v-deep。

<style lang="scss" scoped>
/*用法1*/
.a{::v-deep .b { /* ... */}
}
/*用法2*/
.a ::v-deep .b {/* ... */
}
</style>

【Vue基础】关于Vue中CSS的scoped属性作用域与样式穿透相关推荐

  1. vue中style的scoped属性的设计方式

    vue中style的scoped属性这里是怎实现的呢? scoped三条渲染规则 给HTML的DOM节点加一个不重复data属性(形如:data-v-2311c06a)来表示他的唯一性 在每句css选 ...

  2. Vue中的scoped实现原理和样式穿透方法及原理

    目录 scoped 一.什么是scoped,为什么要用 二.scoped的原理 三.示例 样式穿透 一.为什么需要穿透scoped? 二.样式穿透的方法 三.样式穿透原理 1.示例 2.效果图 sco ...

  3. vue中style的scoped属性这样用,修改第三方组件iview 或 element 样式

    vue中style的scoped属性这样用,修改第三方组件iview 或 element 样式 文章目录 vue中style的scoped属性这样用,修改第三方组件iview 或 element 样式 ...

  4. Vue项目在标签中如何书写多个内敛style样式

    Vue项目在标签中如何书写多个内敛style样式 例如:对一个数组进行循环,我想给偶数项的添加红色背景,奇数项的添加蓝色背景,这时候就可以用v-bind:style="[]",详细 ...

  5. Vue:Vue的element组件中的el-row的属性gutter什么意思?

    Vue:Vue的element组件中的el-row的属性gutter什么意思? 资源 gutter elementui中gutter和offset的区别

  6. Vue中Css的scoped的原理

    当style标签拥有scoped属性的时候,它的css样式只会作用在当前组件 也就是说scoped可以使得组件之间的样式互相隔离,互不影响 如果一个项目中的左右组件style标签都加上scoped就相 ...

  7. vue中style的scoped属性

    原文链接(这两篇讲得超级好):vue中慎用style的scoped属性_June.1的博客-CSDN博客_scoped scoped 和 deep的用法深究_格竹悟道的博客-CSDN博客_scoped ...

  8. Vue全家桶(一):Vue基础+Vue-Cli+Vue组件化+过渡动画

    目录 1.Vue概述 1.1 认识Vue 1.2 Vue的两核心 1.3 Vue的初体验 1.4 Vue的生命周期 2. Vue-CLI (Command Line Interface) 3. Vue ...

  9. 【Vue基础】Vue基础自测45题

    Vue基础自测45题 1.什么是Vue?Vue的核心理念是什么? 2.什么是MVC和MVVM? 3.框架和库的区别? 4.插值表达式 5.vue指令界面防止闪烁 6.vue指令v-html和v-tex ...

最新文章

  1. python 正则表达式贪婪模式与非贪婪模式
  2. response html 页面,使用response将html拼接页面写到当前浏览器端完成自动提交功能...
  3. python爬百度翻译-爬虫 python爬取百度翻译接口 超详细附源码
  4. Qt的Oracle数据库QOCI驱动问题
  5. Python编程基础:第十一节 for循环For Loops
  6. SpringCloud-使用路由网关的服务过滤功能-拦截登录前是否有token为例
  7. CodeForces - 1422F Boring Queries(主席树+线段树/RMQ)
  8. [剑指offer]面试题9:斐波那契数列
  9. 微信联合万达广场上线无感支付 2秒出停车场
  10. 运行时修改Standard shader的Mode
  11. pyqt5制作定时关机软件
  12. java编程实现食堂饭卡刷卡_食堂饭卡管理系统设计方案报告.docx
  13. 架构探险-从零开始写Javaweb框架读书笔记(4)
  14. oracle系统漏洞补丁包,跪求oracle漏洞补丁包
  15. 一、MySQL整体架构
  16. JAVA对接飞猪旅行_飞猪 - 开放平台
  17. python基础篇day4——json,环境变量,装饰器
  18. 一个python文件调用另一个python文件
  19. 镜子法则--看得人泪流满面!
  20. SQL Server使用快捷键查看指定表的信息(字段、备注、索引、约束信息等)

热门文章

  1. 如何判断样本标注的靠谱程度?置信度学习(CL)简述
  2. 20230304 CF855 div3 vp
  3. C++计算矩阵对角线和的程序
  4. Python图片处理模块PIL(pillow)
  5. Git基本操作和GtHub 特殊技巧
  6. 【王道】倒可乐、广度优先算法
  7. linux内核基本模型,Linux设备模型(1)_基本概念
  8. 如何通过cmd开一个本地服务器
  9. 手游平台如何正确运营?
  10. Jupyter notebook 如何进入D盘