自定义 Tailwind 断点必须在 theme.screens 中使用对象语法,如 sm: '640px';数组写法会导致失效,且会完全替换默认断点,修改后需重启开发服务器。
theme.screens 里写死新值就行,但必须用对象语法,不能用数组Tailwind 默认的断点(sm、md、lg 等)本质是 theme.screens 下的一组媒体查询最小宽度值。想自定义,就在 tailwind.config.js 的 theme.screens 位置提供一个纯对象——键是断点名,值是 CSS 宽度值(支持 px、rem、em 或无单位数字,后者会被自动加 px)。
常见错误是照抄默认配置里的数组写法:['640px', '768px', ...],这会导致 Tailwind 启动失败或断点完全不生效。
module.exports = { theme: { screens: { sm: '640px', md: '768px', lg: '1024px', xl: '1280px', '2xl': '1536px', } }}
screens: ['640px', '768px'](数组格式,Tailwind 不识别)md: 'min-width: 768px',但一般没必要,保持默认行为更安全如果你只写了 sm 和 md,那 lg、xl 就彻底没了——Tailwind 不会“合并”你写的和默认的,而是完全替换整个 screens 对象。
xxs),也要一并写进对象里,不能只追加@tailwindcss/aspect-ratio)生成的断点类,它们通常只认默认断点名;改名后对应工具类可能失效写 '640px' 和 640 看似一样,但底层处理不同:前者直接透传为 CSS 值;后者会被 Tailwind 自动转成 640px。多数情况没区别,但在某些定制场景下会有影响:
立即学习“前端免费学习笔记(深入)”;
rem 单位时必须带引号,否则 JS 解析报错:sm: '20rem' ✅,sm: 20rem ❌(语法错误)em)时,不带引号会直接被当数值计算,失去语义,所以一律用字符串--breakpoint-sm),必须写成 sm: 'var(--breakpoint-sm)',且确保变量已在 :root 中定义改完 tailwind.config.js 里的 screens,保存文件并不会让已运行的 npm run dev 进程重新读取配置。你会遇到:CSS 类生成了,但对应媒体查询没变,或者类名根本没出现在构建结果里。
npm run dev(或 pnpm dev 等)npm run build)前务必确认 config 已生效,否则上线后断点错乱很难排查断点是基础层配置,一旦设错,所有响应式类(md:flex、lg:hidden)都会失效,而且错误不报红,只表现为“样式没反应”。建议改完立刻在浏览器里检查生成的 @media 规则是否匹配预期值。