SFC CSS 功能:深层选择/插槽选择器/动态绑定

深层选择器​

如果您希望样式中的选择器scoped"深入",即影响子组件,则可以使用:deep()伪类:

github-dark 复制代码
<style scoped>
.a :deep(.b) {
  /* ... */
}
</style>

以上内容将被编译为:

github-dark 复制代码
.a[data-v-f3f3eg9] .b {
  /* ... */
}

提示

创建的 DOM 内容v-html不受范围样式的影响,但您仍然可以使用深度选择器来设置它们的样式。

插槽选择器

默认情况下,范围样式不会影响 渲染的内容<slot/>,因为它们被视为传入它们的父组件所拥有。要明确定位插槽内容,请使用:slotted伪类:

css 复制代码
<style scoped>
:slotted(div) {
  color: red;
}
</style>

v-bind()在 CSS 中

SFC<style>标签支持使用 CSS 函数将 CSS 值链接到动态组件状态v-bind:

css 复制代码
<template>
  <div class="text">hello</div>
</template>

<script>
export default {
  data() {
    return {
      color: 'red'
    }
  }
}
</script>

<style>
.text {
  color: v-bind(color);
}
</style>

该语法适用于<script setup>,并支持 JavaScript 表达式(必须用引号引起来):

css 复制代码
<script setup>
import { ref } from 'vue'
const theme = ref({
    color: 'red',
})
</script>

<template>
  <p>hello</p>
</template>

<style scoped>
p {
  color: v-bind('theme.color');
}
</style>

实际值将被编译为散列 CSS 自定义属性,因此 CSS 仍然是静态的。自定义属性将通过内联样式应用于组件的根元素,并在源值发生变化时进行响应式更新。

相关推荐
FungLeo12 分钟前
成为全栈·React 管理后台篇·总复盘:从“接口能调通”到“后台值得使用”
前端·react.js·前端框架·项目复盘·成为全栈
Csvn2 小时前
并发模式:让渲染学会排队、插队和让路
前端
可乐鸡翅yeah_2 小时前
新手梳理:M3U8 线上问题,哪些是前端锅,哪些是后端锅
前端·ios·音视频·实时音视频·m3u8·音视频在线播放
Flynt2 小时前
Linear 用 1000 个 PR 换掉 styled-components,我写了 200 个按钮,把这笔账复现了一遍
前端·css·preact
JavaGuide3 小时前
NVIDIA 又开源了!这次给 AI Agent 加上权限管控
前端·后端
excel3 小时前
prisma 如何处理数据库竞态
前端·数据库·后端
莪_幻尘4 小时前
Skill 体检:30 个 Skill 全凭感觉?体检器先自曝了 8 个“假 0 分
前端·人工智能·llm
风骏时光牛马4 小时前
AI模型综合能力评测:性能、指令遵循与多场景实测对比
前端
Frag0ut4 小时前
Chrome与Chromium内核浏览器在Windows 11上的新特性全景解析
前端·chrome·windows·web安全·chromium·gemini ai·playready drm
hiahiahia1235 小时前
实现完整 Tool Dispatcher
开发语言·前端