Vue04/Vue组件的样式冲突 scoped和style属性scoped原理说明(面试点)

一.组件的样式冲突 scoped

默认情况下 写在组件中的样式会生效 因此很容易造成多个组件之间的样式冲突问题

组件样式问题默认会作用到全局 就会影响到整个 index.html 中的 dom元素

全局样式: 默认组件中的样式会作用到全局

局部样式: 可以给组件加上 scoped 属性 可以让样式只作用于当前组件

二.scoped

1.scoped原理

  作用: 让组件的样式独立互不影响

(1)当前组件内标签都会被添加 data-v-hash值 的属性

  (2) css选择器都会被添加 [  data-v-hash值 ] 的属性选择器

最终效果: 必须是当前组件的元素 才会有这个自定义属性 才会被这个样式作用到

2.scoped原理和过程

(1)会自动给组件内标签 添加 data-v-hash值属性

(2)所有选择器都带上属性选择器

  (3) 给当前组件内所有的标签添加一个data-v-hash 的唯一标识 

  (4) 给当前style中所有的选择器添加一个属性交集选择器 确保所有选择器 只应用于当前组件的标签中

3.scoped 组件css作用域

(1) 默认情况下 如果子组件和父组件有相同的选择器样式 优选加载父组件 css样式

(2)如果希望子组件加载可以加载自己的样式 ,就可以使用 scoped组件 css作用域

面试点

1. scoped属性作用: 让子组件加载自己的样式(组件css作用域)

2. scoped属性原理: 让组件添加一个自定义属性 data-v-hash本质通过css属性选择器中增加权重

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值