首页 > Web开发 > 详细

vue中的css深度监听

时间:2020-05-11 10:31:31      阅读:216      评论:0      收藏:0      [点我收藏+]

vue组件编译后,会将 template 中的每个元素加入 [data-v-xxxx] 属性来确保 style scoped 仅本组件的元素而不会污染全局,但如果你引用了第三方组件,默认只会对组件的最外层(div)加入这个 [data-v-xxxx] 属性,但第二层开始就没有效果了。导致子级的样式失效

解决办法:

1,除去scoped(最好不要,最蠢的办法,可能会影响其他地方的样式),或者在当前vue新建一个没有scoped的style

<style lang="css" scoped>
.header {
    ...
}
</style>
<style lang="css">
.header .name {
    ...
}
</style>

  

2,>>>深度作用选择器(缺点:只作用于css),如果是less或者sass的话可以使用/deep/或者::v-deep(官方建议使用后者)

<style lang="css" scoped>
.normal-btn>>>i, .normal-btn>>>span {
    ....
}
</style>

  

// 使用/deep/
<style lang="less" scoped>
/deep/ .refresh-btn {
    ...
}
</style>
// 使用::v-deep
<style lang="less" scoped>
::v-deep .refresh-btn {
    ...
}

  

这里看来,比较推荐使用方法二,方法一有后遗症而且增加更多的代码量

 

 

技术分享图片

 

vue中的css深度监听

原文:https://www.cnblogs.com/SaberInoryKiss/p/12867211.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!