样式表

@CSS
样式表 CSS

可以导入本地样式表;也可以导入在线样式表

可以全局引入;也可以组件引入

<link> - html 文件引入
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_3859342_gvcksnd8b65.css">
@import - CSS 文件中引入
@import './base.css';
@import url(//at.alicdn.com/t/c/font_4235521_vw0a33le7e.css);
import - 逻辑中引入,如在入口文件 main.js 中全局引入;只能引入本地文件
import "./assets/main.css";
作用域 Scope
样式部分中,使用 scoped 属性指定样式仅仅作用于当前组件的元素。但是会增加额外的开销:渲染时,每个组件分配一个属性
内部样式是通过组件的属性进行选择
推荐:为组件的根节点指定一个特有的类。如 .nav。推荐以组件名字命名这个类;因为组件的功能各不相同,所以很容易保证组件类的唯一性
更多信息,请访问 API - 单文件组件 CSS 功能
根组件分配的属性
父组件指定的7a7a和自己指定的0904
组件内部元素分配的组件属性
[] 换肤 - 利用局部变量覆盖全局变量实现主题切换
<body>在挂载点的外围,不在组件的作用域内
方案1:CSS变量定义在全局样式中
方案2:取消组件样式的作用域限制 scoped
:root {
  --bg-color: #fff;
  --txt-color: #000;
}
body {
  background-color: var(--bg-color);
  color: var(--txt-color);
  height: 100vh;
}

body.dark-theme {
  --bg-color: #000;
  --txt-color: #fff;
}
const changeTheme = () => {
  darkMode.value = !darkMode.value
  window.document.body.classList.toggle('dark-theme', darkMode.value)
}
样式预处理 SCSS
原生 CSS3 也支持嵌套写法
后续案例演示会使用两种方法
请访问 SCSS