美文网首页css
CSS的coped私有作用域和深度选择器

CSS的coped私有作用域和深度选择器

作者: xinhui9056 | 来源:发表于2018-07-26 17:55 被阅读0次

大家都知道当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。那么他是怎么实现的呢,大家看一下编译前后的代码就明白了:

编译前:

<style scoped>
.example {
  color: red;
}
</style>

编译后:

<style>
.example[data-v-f3f3eg9] {
  color: red;
}

看完你肯定就会明白了,其实是在你写的组件的样式,添加了一个属性而已,这样就实现了所谓的私有作用域。但是也会有弊端,考虑到浏览器渲染各种 CSS 选择器的方式,当 p { color: red } 设置了作用域时 (即与特性选择器组合使用时) 会慢很多倍。如果你使用 class 或者 id 取而代之,比如 .example { color: red },性能影响就会消除。所以,在你的样式里,进来避免直接使用标签,取而代之的你可以给标签起个class名。

如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符:

<style scoped>
    .parent >>> .child { /* ... */ }
</style>

上述代码将会编译成:

.parent[data-v-f3f3eg9] .child { 
    /* ... */ 
}

而对于less或者sass等预编译,是不支持>>>操作符的,可以使用/deep/来替换>>>操作符,例如:.parent /deep/ .child { /* ... */ }

举个栗子

如果想将swiper当前默认蓝色状态改成白色 默认效果

css样式可以可以写

.swiper-pagination-bullet-active{
    background: #fff;
}
看看效果会怎样 重置样式后效果
这个时候就可以用到深度作用选择器
/deep/.swiper-pagination-bullet-active{
    //使用 scoped 后,父组件的样式将不会渗透到子组件中。
    //使用深度作用选择器 /deep/ 或者'>>>' ,但注意像sass、less预处理器不认三个箭头
    background: #fff;
}
使用深度作用选择器后效果

相关文章

  • CSS的coped私有作用域和深度选择器

    大家都知道当 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。那么他是怎么实现的呢,大家...

  • 2017-3-22 less

    Extend伪类 样式的继承使用 LESS: CSS: 命名空间和作用域 指定命名空间LESS: CSS: 私有作...

  • vue style穿透选择器

    如果要在scope作用域下修改外部样式,这里就需要穿透(深度)选择器 一、CSS使用>>> 二、less使用 /d...

  • 作用域链,原型链,面向对象的理解

    作用域链: 函数执行会形成一个私有的作用域,形成和当前私有作用域中声明的变量都是私有变量,当前私有作用域有自我保护...

  • scoped私有作用域和deep selector深度作用选择器

    私有作用域 在标签上添加scoped属性,可以使样式只在当前组件生效,样式私有化,避免影响其他的组件,造成全局污染...

  • js笔记之作用域

    1. 如何区分全局作用域和私有作用域? 在全局作用域下声明(预解释的时候)的变量是全局变量 在私有作用域中声明的变...

  • 作用域链跟原型链

    作用域链: 函数执行会形成一个私有的作用域,形参和在当前私有作用域中声明的变量都是私有变量,当前的私有作用域有自我...

  • 2019-11-08-本周学习周报

    学习总览 JavaScript 数据类型 变量 作用域 CSS CSS3选择器 学习内容 (1) 数据类型 类型检...

  • 常用标签和css

    input标签 下拉和多行文本域 div标签 认识CSS CSS选择器 伪类选择器 homework

  • Vue的作用域样式scoped CSS和深度作用选择器>>>、/

    不同于 React 和 Angular,Vue 使用的 .vue 文件是一个自定义的文件类型,用类 HTML 语法...

网友评论

    本文标题:CSS的coped私有作用域和深度选择器

    本文链接:https://www.haomeiwen.com/subject/vdabmftx.html