PostCSS 使用教程
2026-01-18 10:27:01作者:丁柯新Fawn
项目介绍
PostCSS 是一个使用 JavaScript 转换 CSS 的工具。它通过插件系统提供了强大的功能扩展能力,使得开发者可以自动化处理 CSS,包括添加前缀、优化、转换等。PostCSS 的核心是一个解析器,它将 CSS 转换成一个抽象语法树(AST),然后通过插件对 AST 进行操作,最后再转换回 CSS。
项目快速启动
安装
首先,你需要安装 Node.js 和 npm。然后,通过 npm 安装 PostCSS 和一些常用的插件:
npm install postcss postcss-cli autoprefixer
配置
创建一个 postcss.config.js 文件,配置你需要的插件:
module.exports = {
plugins: [
require('autoprefixer')
]
}
使用
创建一个 styles.css 文件,然后使用 PostCSS 命令行工具处理 CSS 文件:
npx postcss styles.css -o output.css
应用案例和最佳实践
自动添加前缀
使用 autoprefixer 插件可以自动为 CSS 属性添加浏览器前缀,确保兼容性:
/* 输入 */
.example {
display: flex;
}
/* 输出 */
.example {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
使用变量
通过 postcss-custom-properties 插件,可以在 CSS 中使用变量:
/* 输入 */
:root {
--main-color: #3498db;
}
body {
color: var(--main-color);
}
优化和压缩
使用 cssnano 插件可以优化和压缩 CSS 代码:
npm install cssnano
在 postcss.config.js 中添加 cssnano:
module.exports = {
plugins: [
require('autoprefixer'),
require('cssnano')({
preset: 'default'
})
]
}
典型生态项目
Autoprefixer
Autoprefixer 是一个自动添加浏览器前缀的插件,确保 CSS 在不同浏览器中的兼容性。
CSS Modules
CSS Modules 是一个用于模块化和组合 CSS 的插件,避免全局命名冲突。
Stylelint
Stylelint 是一个用于检查和修复 CSS 代码风格的工具,提高代码质量。
PostCSS Preset Env
PostCSS Preset Env 可以将现代 CSS 转换为大多数浏览器都能理解的 CSS,同时自动添加必要的 polyfills。
通过这些插件和工具,PostCSS 提供了一个强大的生态系统,帮助开发者更高效地处理和优化 CSS 代码。
登录后查看全文
热门项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0216
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0138
uni-appA cross-platform framework using Vue.jsJavaScript08
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03
项目优选
收起
deepin linux kernel
C
32
16
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
471
465
Ascend Extension for PyTorch
Python
758
968
昇腾LLM分布式训练框架
Python
186
231
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
698
1.4 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
878
2.03 K
暂无描述
Dockerfile
780
5.08 K
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
70
22
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.04 K
271
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
2.08 K
216