vue样式穿透 ::v-deep

在Vue项目中,当需要修改scoped样式影响不到的组件样式,如Element-UI时,可以使用样式穿透解决。本文介绍了三种方法:>>>、/deep/和::v-deep。>>>适用于纯CSS,而/deep/或::v-deep(Vue CLI 3+推荐)用于预处理器如SCSS,它们允许样式穿透到子组件。注意,::v-deep必须以双冒号开头。
摘要由CSDN通过智能技术生成

vue样式穿透 ::v-deep的具体使用:

在vue项目开发中,我们一般都是<style lang="scss" scoped> .... </style>中编写只会影响当前组件内的样式,但如果最后将这些组件整合的时候发现有些样式不够完美(或需要覆盖element-ui中的样式时),想要去修改样式时却发现无法生效,去掉scoped的话又会影响全局样式。
在网上找了很久,发现可以使用>>>/deep/来解决

  1. >>>
    如果vue中style使用的是css,那么则可以使用>>>
    <style lang="css" scoped>
    	.a >>> .b { 
    	 /* ... */
    	}
    </style>
    
  2. /deep/
    如果vue中使用的是style使用css(less, sass, scss)的预处理器,则需要使用deep,因为scss预处理器是无法解析>>>
    <style lang="scss" scoped>
    	.a{
    		/deep/ .b { 
    		 /* ... */
    		}
    	} 
    </style>
    
  3. ::v-deep
    如果你是使用vue-cli3以上版本的脚手架创建的项目,使用/deep/可能会出现报错信息。如果出现报错或失效等问题,则可以使用::v-deep
    <style lang="scss" scoped>
    	::v-deep .a{
    	 /* ... */
    	} 
    </style>
    
    注意:必须是要以双冒号开头的
    如果你希望 scoped 样式中的选择器能够作用得“更深”,例如影响子组件,你可以使用以上方法来实现!!!
  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值