插槽选择器和全局选择器

718bed4eb7f2ec1cbbb740f835846e4c.png

之前我们已经了解了深度选择器,处于 scoped 样式中的选择器如果想要做更“深度”的选择,也即:影响到子组件,可以使用 :deep() 这个伪类:

<style scoped>
.a :deep(.b) {
  /* ... */
}
</style>

上面的代码会被编译成:

.a[data-v-f3f3eg9] .b {
  /* ... */
}

插槽选择器

默认情况下,作用域样式不会影响到 <slot/> 渲染出来的内容,因为它们被认为是父组件所持有并传递进来的。使用 :slotted 伪类以明确地将插槽内容作为选择器的目标:

以下是 :slotted 选择器的用法:

1.基本用法

/* 选择插入到插槽中的所有元素 */
:slotted(*) {
   /* CSS 样式 */
}

1.选择特定元素

/* 选择插入到插槽中的特定元素 */
:slotted(.special-class) {
   /* CSS 样式 */
}

1.选择特定元素类型

/* 选择插入到插槽中的特定元素类型 */
:slotted(span) {
   /* CSS 样式 */
}

1.选择特定属性值

/* 选择插入到插槽中的具有特定属性值的元素 */
:slotted([data-custom="value"]) {
   /* CSS 样式 */
}

这些示例演示了如何使用 :slotted 选择器来选择插入到插槽中的不同类型的元素或具有特定类名、属性值的元素。通过这种方式,你可以根据需要为插入到插槽中的元素定义不同的样式。

全局选择器

如果想让其中一个样式规则应用到全局,比起另外创建一个 <style>,可以使用 :global 伪类来实现 (看下面的代码):

<style scoped>
:global(.red) {
  color: red;
}
</style>

混合使用局部与全局样式

你也可以在同一个组件中同时包含作用域样式和非作用域样式:

<style>
/* 全局样式 */
</style>


<style scoped>
/* 局部样式 */
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值