三、插槽选择器默认情况下,作用域样式不会影响到 <slot/> 渲染出来的内容,因为它们被认为是父组件所持有并传递进来的。使用 :slotted 伪类以确切地将插槽内容作为选择器的目标:<style scoped>
三、插槽选择器
默认情况下,作用域样式不会影响到 <slot/>
渲染出来的内容,因为它们被认为是父组件所持有并传递进来的。使用 :slotted
伪类以确切地将插槽内容作为选择器的目标:
<style scoped>
:slotted(div) {
color: red;
}
</style>
四、全局选择器
如果想让其中一个样式规则应用到全局,比起另外创建一个 <style>
,可以使用 :global
伪类来实现:
<style scoped>
:global(.red) {
color: red;
}
</style>
五、混合使用局部与全局样式
你也可以在同一个组件中同时包含作用域样式和非作用域样式:
<style>
</style>
<style scoped>
</style>
六、支持CSS Modules
<style module>
标签会被编译为 CSS Modules 并且将生成的 CSS 类键暴露给组件:
1、 默认以$style
对象暴露给组件;
<template>
<p :class="$style.red">
This should be red
</p>
</template>
<style module>
.red {
color: red;
}
</style>
2、可以自定义注入module名称
<template>
<p :class="classes.red">red</p>
</template>
<style module="classes">
.red {
color: red;
}
</style>
七、与setup一同使用
注入的类可以通过 useCSSModule api 在 setup()
和 <script setup>
中使用:
<script setup>
import { useCssModule } from 'Vue'
// 默认, 返回 <style module> 中的类
const defaultStyle = useCssModule()
// 命名, 返回 <style module="classes"> 中的类
const classesStyle = useCssModule('classes')
</script>
八、动态 CSS
单文件组件的 <style>
标签可以通过 v-bind
这一 CSS 函数将 CSS 的值关联到动态的组件状态上:
<script setup>
const theme = {
color: 'red'
}
</script>
<template>
<p>hello</p>
</template>
<style scoped>
p {
color: v-bind('theme.color');
}
</style>
--结束END--
本文标题: Vue3 style中新增的特性有哪些及怎么用
本文链接: https://lsjlt.com/news/208372.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2023-05-25
2023-05-25
2023-05-25
2023-05-25
2023-05-25
2023-05-24
2023-05-24
2023-05-24
2023-05-24
2023-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0