内联样式
在 属性绑定 中,我们已经了解了绑定元素 style
属性的方法:
渲染出的 HTML:
使用 class 关联样式
也可以使用 class
属性关联样式。
样式的来源可以是:
- 单文件组件中定义的样式
- 通过
import 'style.css'
引入的全局样式或外部样式
使用其他语言
Vite 项目稍加配置,即可支持 CSS 预处理器,参考 Vite: CSS 预处理器。
可以在 TS 中直接引入样式文件:
也可以在单文件组件的 <style>
标签内标注所使用的预处理器类型:
scoped - 组件作用域
默认情况下,单文件组件内的样式是全局的,这会对组件外产生样式污染。
src/components/demo-style.vue:
编译后的样式:
为了避免不必要的全局样式出现,可以使用 scoped
属性将样式的作用域限制到组件内:
编译后的代码:
深度匹配
有时候会需要在父组件中覆盖子组件的样式,但如果父组件使用了局部作用域的样式,其中的样式就无法应用到子组件了。
深度匹配 :deep()
可以帮助我们实现这一需求:
编译后的 CSS:
CSS Modules
Vite 也支持 CSS Modules。
在单文件组件中声明和使用
引入外部 CSS 模块