PostCSS
PostCSS 是一个用 JavaScript 工具和插件转换 CSS 代码的工具。Modern.js 内置 PostCSS,并集成 Autoprefixer 等常用的 PostCSS 插件,能够满足大多数项目的样式开发需求。
默认情况下,Modern.js 会对 CSS 进行以下编译和转换:
Autoprefixer 根据需要支持的浏览器范围,会自动为 CSS 规则添加需要的浏览器厂商前缀。Modern.js 默认支持的浏览器范围为:
['> 0.01%', 'not dead', 'not op_mini all']
。注意
- 【支持的浏览器范围为:
> 0.01%
】是指浏览器市场份额大于 0.01%。 not dead
是指不包含官方不再支持的浏览器和过去24个月没有更新的浏览器。not op_mini all
是指不包含 Opera Mini。
补充信息
如果需要修改默认浏览器支持范围,可以在项目的
package.json
文件中配置browserslist
,设置规则参考 Browserslist 的使用,下面是一个示例:package.json{
"browserslist": [
"last 1 version",
"> 1%",
"IE 10"
]
}- 【支持的浏览器范围为:
提供 CSS custom properties 支持,可以在 CSS 中定义和使用自定义变量,如:
:root {
--main-bg-color: pink;
}
body {
background-color: var(--main-bg-color);
}提供 CSS Nesting 支持,可以在 CSS 中使用嵌套写法,如:
table.colortable td {
text-align: center;
}
table.colortable td.c {
text-transform: uppercase;
}也可以改写成 CSS 嵌套写法:
table.colortable {
& td {
text-align: center;
&.c { text-transform: uppercase }
}
}修复已知的 Flexbugs 。
对以下 CSS 特性提供兼容:
当需要修改 PostCSS 配置时,可以通过底层配置
tools.postcss
来实现,下面是一个示例:
modern.config.js
export default defineConfig({
tools: {
postcss: {
plugins: ['autoprefixer', ('postcss-flexbugs-fixes': {})],
},
},
});