如果一定要父组件中去覆盖子组件(第三方的)的样式:
方法一: 不要写成scoped. 此时,样式就是全局的。
方法二: 在保持scoped的情况下,还可以使用 /deep/。
为什么用了scoped之后,不能覆盖子组件的样式?

因为scoped会在选择器最后加data-v-xxxxxxx这属性名,所以无法选中子组件的样式。
为什么用了/deep/之后,就可以覆盖子组件的样式?
.index{
padding-top:50px;
/deep/ .van-tabs__wrap {
position:fixed;
top:46px;
left:0px;
right:0px;
}
/deep/ .van-tabs--line{
padding-top:50px; // 让出van-tabs的高度
}
}
因为加了deep之后,属性就不会加在其后的选择器上了。
解析后css如下:


本文介绍如何在父组件中覆盖子组件(尤其是第三方组件)的样式。通过两种方法实现:一是取消scoped属性使样式变为全局;二是保留scoped并使用/deep/进行深度选择。解释了这两种方法的工作原理及为何能成功覆盖子组件样式。
1519

被折叠的 条评论
为什么被折叠?



