vue样式穿透(deep样式穿透)_修改组件库样式

vue样式穿透(deep样式穿透)_修改组件库样式

使用vue的过程中经常会遇到样式失效的问题,使用UI框架的过程中,也会遇到这样的问题。一般来说这样的问题就是使用scoped而导致的。

scoped是什么,原理是什么

开发的过程中会有多个组件,为了避免样式冲突。我们常常会在style中添加scoped来避免这个问题。它的原理就是通过给标签添加data-v-xxx的自定义属性,来实现私有化。

  • 未使用scoped
  • 使用scoped标签之后

什么时候使用穿透

当你使用scoped想要修改组件库样式的时候
当父组件想要修改子组件样式的时候,父组件通过给子组件添加类名修改样式的时候,只有子组件的根标签才会被修改,非跟标签如子标签等就会样式失效。

// 子组件 <son>
<template>
 <div class="root">
        根元素
        <div class="bbb">非根元素</div>
    </div>
</template>
// 父组件
<template>
 <sonclass="son"></son>
</template>

当在父组件中通过son类名修改子组件字体颜色时,只有根元素会生效。非根元素就不会生效

样式穿透

使用了样式穿透的类名,在解析的时候就不会出现自定义属性。这样样式就会共用。
样式穿透在原生css中使用>>>

.root >>>.bbb{
color:#fff;
}

在less中使用/deep/

.root{
/deep/.bbb{
  color: #fff;
}
}

在scss中使用::deep

.root ::v-deep .bbb {
	color: red;
}
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值