VUE深度作用选择器/deep/

Vue的scoped属性用于限制CSS只作用于当前组件,防止样式污染全局。但当需要影响子组件样式时,可以使用深度选择器,如>>>、/deep/或::v-deep。在预处理器不支持>>>的情况下,/deep/和::v-deep是其别名,Vue3推荐使用:deep()。

为了保证每个组件的css唯一性,避免污染全局或者被全局污染,vue提供了scoped作用域。当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。

如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,可以用深度作用选择器(样式穿透)来实现。

VUE官网

深度作用选择器有多种写法:

操作符>>>

.table >>> th{
    text-align: center;
    padding: 4px;
}

有些像 Sass 之类的预处理器无法正确解析 >>>。这种情况下你可以使用 /deep/ 或 ::v-deep 操作符取而代之——两者都是 >>> 的别名,同样可以正常工作。

/deep/

.table /deep/ th{
    text-align: center;
    padding: 4px;
}

::v-deep

.table ::v-deep th{
    text-align: center;
    padding: 4px;
}

:deep()

.table :deep(th){
    text-align: center;
    padding: 4px;
}
  • 操作符 >>> 可能会因为无法编译而报错,可以使用 /deep/
  • 对于使用了 css 预处理器(scss 、sass、 less)时,深度选择器 ::v-deep 比较通用
  • vue3废弃 >>>、::v-deep、/deep/,采用:deep()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值