如何在父组件中去覆盖子组件中样式?

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

如果一定要父组件中去覆盖子组件(第三方的)的样式:

方法一: 不要写成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如下:

在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值