vue3单文件组件中style特性的深入讲解
style scoped
需要注意的有:
- 样式不会影响到其他组件,只会在当前组件生效。
- 子组件的根元素会同时 受父组件的作用域样式,和子组件的作用域样式影响. 这样做的目的是让父组件可以调整子组件的布局。
- 存在3个特殊的选择器:
1. 深度选择器:可以影响到子组件. 使用伪类 => :deep(cls: 影响的选择器)
.a :deep(.b) {
...
}
2. 插槽选择器: 可以影响到插槽内容的样式。使用伪类 => :slotted(选择器)
:slloted(.a) {
...
}
3. 全局选择器: 是样式影响到全局。 使用伪类 => :global(选择器)
:slloted(.a) {
...
}
scoped style 可以和 style同时存在
style module
style 标签中带有 module。其样式和 style scoped一样只能作用域于当前组件。
此方式会将css 编译为 css modules.且暴露给组件$styles对象来使用css样式
<template>
<p :class="$style.red">
This should be red
</p>
</template>
<style module>
.red {
color: red;
}
</style>
可以给module赋值来自定义暴露的对象名称
<template>
<p :class="style.red">
This should be red
</p>
</template>
<style module='style'>
.red {
color: red;
}
</style>
在组合式api中可以使用 useCssModule() api来使用cssModule.
// 默认, 返回 <style module> 中的类
useCssModule()
// 命名, 返回 <style module="classes"> 中的类
useCssModule('classes')
状态驱动的动态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>
总结
到此这篇关于vue3单文件组件中style特性的文章就介绍到这了,更多相关vue3单文件组件style特性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
在Vue3中使 echarts 图表宽度自适应变化的操作方法
本文介绍了在Vue3中使用ECharts时,如何使图表容器宽度自适应页面大小,通过修改模板中的div样式,将宽度设置为100%,并监听窗口大小变化事件,调用ECharts实例的resize方法,实现图表的自适应调整,感兴趣的朋友跟随小编一起看看吧2025-02-02
浅谈vue3中ref、toRef、toRefs 和 reactive的区别
本文主要介绍了浅谈vue3中ref、toRef、toRefs 和 reactive的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-07-07


最新评论