应仅加载Pure.css的Grid和Buttons模块以减少12KB冗余代码,需按顺序引入grids-min.css和buttons-min.css,避免使用pure-nr.css;若需定制,须通过覆盖媒体查询而非修改源码,并注意iOS点击反馈、Firefox禁用态及SVG图标颜色适配。

怎么只加载Pure.css的Grid和Buttons模块
Pure.css默认打包了所有组件,但实际项目往往只需要Grid布局和Button样式。全量引入会多加载约12KB(gzip后),且可能覆盖你已有的CSS重置逻辑。
官方提供模块化CDN路径,直接替换pure-min.css即可:
https://unpkg.com/purecss@3.0.0/build/grids-min.css https://unpkg.com/purecss@3.0.0/build/buttons-min.css
- 必须按顺序加载:
grids-min.css要在buttons-min.css之前,否则.pure-button依赖的.pure-g等基础类会失效 - 别用
pure-nr.css(no-reset版)——它不包含normalize.css,按钮边距、字体继承可能异常 - 如果项目已有Normalize或Reset,优先选
pure-min.css+ 手动剔除不需要的模块,而非pure-nr.css
为什么不能直接import单个SCSS文件
Pure.css的源码是Less写的,官方没发布SCSS版本;npm包里的src/目录是Less源文件,直接@import会报错,因为缺少pure-base.less中定义的变量和mixins。
真要走构建流程,得这样处理:
立即学习“前端免费学习笔记(深入)”;
- 安装
less和less-plugin-autoprefix(Pure依赖Autoprefixer补全前缀) - 在主Less文件里显式
@import:@import "node_modules/purecss/src/grids/grids.less"; - 必须同时
@import "node_modules/purecss/src/base/base.less";,否则.pure-u-1-2等类名编译失败 - Webpack里用
less-loader时,需配置paths指向node_modules,否则@import路径解析失败
Grid响应式断点怎么自定义但不破坏按钮样式
Pure.css的Grid断点(@small, @medium)写死在Less变量里,改了会影响所有引用它的模块。但按钮本身不依赖这些变量,所以安全做法是只覆盖Grid相关媒体查询。
推荐在项目CSS末尾加覆盖规则:
@media screen and (max-width: 48em) {
.pure-u-sm-1-2 { width: 100%; }
}
- 不要修改
purecss/src/grids/grids.less再重新编译——按钮的.pure-button-primary虽不依赖断点,但.pure-button-xsmall等尺寸类会因构建环境变化意外失效 - 用
!important覆盖时,只加在宽度声明上,别碰display或float,否则.pure-u-1在IE11里会塌陷 - 移动端断点建议设为
48em(768px),低于这个值Pure Grid默认不生效,硬切会丢失语义化流式行为
按钮点击态和禁用态的兼容性陷阱
.pure-button的:active状态在iOS Safari上默认无反馈,因为Webkit需要-webkit-tap-highlight-color配合;disabled属性在Firefox里对a.pure-button无效,必须用button标签。
- 修复iOS点击反馈:给按钮加
style="-webkit-tap-highlight-color: rgba(0,0,0,0.2);",别用CSS class——Pure没预留这个hook - 禁用按钮必须用
<button class="pure-button" disabled>,<a class="pure-button" disabled>在Firefox中仍可点击 -
.pure-button-disabled只是视觉样式,不阻止事件,真禁用还得加disabled属性或pointer-events: none - 如果按钮内含SVG,记得给
<svg>加fill: currentColor,否则.pure-button-disabled下图标颜色不会变灰
Pure.css轻量的核心在于“不帮你做决定”,比如它不自动处理表单控件、不封装JavaScript交互。你加一个按钮,就得自己管它的焦点管理、键盘可访问性和禁用逻辑——这点比代码体积更容易被忽略。










