CSS Modules
CSS模块是一个约定而成的规范,开发者围绕这个规范实现相应的工具。
定义
一个CSS模块是一个css文件
- 文件内的类名、动画名默认限制在文件内,不会造成全局污染
- 文件内的url,按照
./xxx
表示相对路径,xxx/yyy
表示node_modules
下的模块路径
用法
js
import styles from "./style.css";
// import { className } from "./style.css";
element.innerHTML = '<div class="' + styles.className + '">';
实现在JS中导入CSS的这套规范称为ICSS,用于指导相关工具的开发实现。
命名
css class 推荐小驼峰式命名,如.className
,以便在JS中书写
例外
在CSS模块中,使用:global(.xxx)
退出到全局作用域,使用:local(.xxx)
在:global
内回到本地作用域
组合
css
.classNameA {
color: green;
}
.classNameB {
color: green;
}
.otherClassName {
composes: classNameA classNameB;
color: yellow;
}
依赖
css
.otherClassNameA {
composes: className from "./style.css";
}
.otherClassNameB {
composes: globalClassName from global;
}
作用
模块化的,便于重用的CSS
- 不再冲突
- 明确的依赖
- 不再全局污染