vue父组件控制子组件样式

vue父组件控制子组件样式

vue组件控制样式

  • 存在scoped 属性:只在当前组件中生效(给组件内的标签加哈希自定义属性)
    <style scoped lang="less">
    	.body-bg {
    	  background: red;
    	}
    </style>
    
  • 不存在scoped 属性:会在整个项目中生效
    <style lang="less">
    	.body-bg {
    	  background: red;
    	}
    </style>
    

父组件控制子组件样式

问题场景:当使用一些框架,比如 element-ui,经常会调用组件,那么如何控制组件内的标签样式?

直接去掉样式的scoped属性,但会造成样式全局污染

解决:

  1. 官方:样式穿透(推荐)
    在控制子组件的样式前面加入 /deep/

    /deep/.a{
    	color: white;
    }
    
  2. 多style
    一个组件内 写多个style
    分别控制全局和局部的样式

    	<style scoped>
    	.box .a{
    	  color: white;
    	}
    	</style>
    	<style>
    	.b{
    	  color: red;
    	}
    	</style>
    

    注意:全局样式最好加一个限制条件,避免全局污染

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值