Vue的样式冲突

scoped:

 Vue-loader,使 Vue 可以使用类似于 Web Component 的组件化写法, <template></template><style></style><script></script> ,并且为组件中的 style 标签增加一个 scoped 标识。Vue-loader 在编译的过程中会为组件每一个元素节点增加 scopeId 作为属性,同时为所有的样式类加上属性选择器 scopeId,从而达到隔离的效果。

如图所示,这就是Vue-loader为元素加上的唯一scopeId,然后通过属性选择器选中

有这样一种情况,当我们引入bulma,ivew等第三方库时,这些库一般都会初始化一些样式。比如bulma中将所有的h标签都进行了处理。我们想改变这些默认的样式时,使用普通的方法是不会生效的,即使通过 !important提高优先级也不会生效。对于这种情况,我提供两种方法给大家:

1.将scoped属性去掉或再创建一个不含scoped的style标记

但是这样做失去了样式的保护,会污染全局。

2.vue提供的样式穿透

stylus的样式穿透 使用>>>

外层 >>> 第三方组件{
    样式 
}

.wrapper >>> .swiper-pagination-bullet-active{
    background: #fff
}



sass和less的样式穿透 使用/deep/

外层 /deep/ 第三方组件 {
    样式
}
.wrapper /deep/ .swiper-pagination-bullet-active{
    background: #fff;
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值