作用域样式(scoped css)与深度作用选择器

1.作用域样式是什么?

1). <style scoped>        
2). 让组件的样式限定在当前组件作用域(范围)内有效, 对其它外部或内部组件无效

2.组件不加scoped声明的问题

一个组件的样式可以影响到外部或内部的所有任何组件, 如果不做限制就会出现样式效果的问题

3.组件声明使用scoped

1). 标签变化: 组件内所有标签包括子组件的根标签都添加了自定义data属性来标识,如: data-v-2e8d0da5
2). 选择器的变化:组件内所有样式选择器的都右边都会添加上自定义data属性的条件, 如: .test2 .t3[data-v-2e8d0da5]

3). 结果:一旦加上scoped后, 样式选择器不再能匹配上子、孙组件的标签(根标签除外)

4.深度作用选择器

1). 作用
使用了scoped后, 还能修改子/孙组件的样式, 尤其是第三方UI组件库组件

2). 语法

 

作用域样式(scoped css)与深度作用选择器

3)原理:

● 内部是由vue-loader来进行编译处理的            
● 编译打包后样式选择器上的data属性条件加在了最左边第一层选择器上: .test2[data-v-2e8d0da5] .t3 
● 结果: 对子/孙组件标签就没有此属性的条件, 就可以匹配上子/孙组件内的标签, 进而改变其样式效果

想要了解跟多关于前端培训技术记得关注哦!

作用域样式(scoped css)与深度作用选择器

上一篇:uniapp获取组件距离顶部距离,还有遇到的一些坑


下一篇:3Dsmax怎么绘制文化石模型?