直接修改 theme.screens 对象即可生效,但必须确保格式正确(对象而非数组或函数)、保留默认断点、且重启开发服务器;否则新断点不会生成css类。

直接改 theme.screens 对象就能生效,但写错格式、漏掉默认断点、不重启服务,这三件事做错一个,新断点就完全不会生成类。
screens 必须是对象,不能是数组或函数
Tailwind 只认键值对形式的 screens,比如 sm: '640px'。常见错误是复制默认配置时保留了数组写法:screens: ['640px', '768px']——这会让整个响应式系统静默失效,控制台不报错,但 md:text-lg 这类类名压根不会出现在生成的 CSS 里。
-
screens不能是数组,也不能是返回对象的函数(v3.3+ 除外,且需明确启用 JIT 扩展) - 值必须是字符串,
sm: 640虽然会被转成640px,但sm: '20rem'这种带单位的写法更稳妥,避免 JS 解析失败 - 纯数字键(如
1440: '1440px')会导致生成非法选择器1440:text-center,浏览器直接忽略
只改部分断点?用 theme.extend.screens
想把 lg 改成 '1100px',又不想丢掉 sm、md、xl 等默认断点,就别碰 theme.screens,改用 theme.extend.screens:
module.exports = {
theme: {
extend: {
screens: {
lg: '1100px'
}
}
}
}
这样其他断点保持默认,lg: 类会按新值生成,第三方插件(如 @tailwindcss/aspect-ratio)也能继续识别 lg 前缀。
-
extend.screens是安全扩增或修正的首选,尤其在团队项目或用了多个插件时 - v3.3+ 后,
DEFAULT已改为小写default,写成DEFAULT: '1200px'会被忽略 - 新增语义化断点(如
desktop: '1440px')也建议走extend,避免意外清空原有配置
新增断点如 xs 或 landscape 的写法
加新断点最简单的方式就是在 theme.extend.screens 里追加键值对,比如适配小屏手机或横屏平板:
extend: {
screens: {
xs: '480px',
landscape: '768px'
}
}
注意:landscape 不代表自动加 (orientation: landscape),它只是个 min-width 查询;真要匹配横屏,得手动写 @media (min-width: 768px) and (orientation: landscape) 并配合插件。
- 值必须是合法 CSS 宽度字符串,
xs: 480(漏单位)或xs: '480'(单位不合法)都会导致xs:hidden不生成 - 如果用了 PurgeCSS 或
content扫描,确保模板中实际写了xs:w-8这类类名,否则会被剔除 - 设太小的值(如
xs: '320px')时,注意它只在320px–639px区间生效;在桌面浏览器调试,得关掉 DevTools 设备模拟器,否则window.innerWidth读的是模拟器视口
改完必须重启开发服务器,不是热更新
Tailwind 的响应式类是构建时静态生成的,运行时改 tailwind.config.js 毫无作用。哪怕你保存了文件,npm run dev 进程也不会自动重载配置。
- 必须手动终止进程(Ctrl+C),再重新执行
npm run dev(或pnpm dev) - 打开生成的 CSS 文件,搜索
@media (min-width: 1100px)或你自定义的值,确认媒体查询存在 - 如果是 Nuxt、Next 等框架,可能需要加
--no-cache或删掉.nuxt/.next目录来清除缓存
最容易被忽略的是:断点之间是叠加关系,不是互斥。比如把 md 改成 '700px',那原本在 768px 生效的样式现在 700px 就开始了——布局可能在不该变的时候提前变了,而你还在查 HTML 有没有写错类名。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











