Tailwind 的断点前缀(如 sm:、md:)表示视口宽度 ≥ 对应像素值的媒体查询,移动优先;sm:hidden 和 lg:block 冲突因 CSS 后写覆盖,正确写法是 block sm:hidden md:block lg:hidden;默认断点为 sm:640px、md:768px、lg:1024px;动态拼接类名会导致响应式失效。
直接说结论:Tail
win
d 的
、
、
等前缀不是“针对某类设备”,而是作用于**视口宽度 ≥ 某个像素值**的媒体查询,且默认是移动优先(mobile-first)——没加前缀的类在所有尺寸都生效,带前缀的只在对应及更大断点生效。
为什么
和
一起用会失效
因为
等价于
,而 CSS 类的顺序决定了权重:后写的类覆盖先写的。写成
时,
会在 ≥1024px 下强制隐藏,不管前面有没有
。
错误写法:
→ lg 下仍被隐藏
正确思路:默认可见,只在需要时隐藏;例如仅在中大屏显示 →
不推荐,逻辑绕;更稳妥的是
(小屏显示,中屏隐藏,大屏再显示)
最常用模式:让元素「仅在 sm 及以下显示」→ 直接写
(默认显示,≥640px 隐藏)
、
、
对应多少像素?别硬背
它们的数值来自
中的
,官方默认是:
、
、
、
、
。但项目里只要改过配置,比如把
改成
,那所有
类就从 800px 开始生效。
断点不识别设备类型(iPhone / iPad / Chromebook),只看
表示「≥640px」,不是「仅在 sm 尺寸」;所以
在 lg、xl 下也生效
没定义的断点名(如
)完全不会生成对应 CSS
响应式布局
常见组合:Flex/Grid + 断点前缀
这类组合最容易踩坑的地方是「以为写了
就能替代
」,其实不然——不写基础类,小屏下 Flexbox 根本不启用。
elasticsearch-9.4.0 win
PHP中文网提供Elasticsearch 9.4.0 Windows 版本压缩包下载解压即用,内置 OpenJDK 无需额外配置 Java 环境。该版本重磅推出原生 Prometheus 支持、正式版 Elastic Workflows 以及基于 NVIDIA cuVS 的 GPU 加速向量索引,大幅提升 AI 检索与可观测性能力。建议前往官网下载,快速体验极速搜索与强大的数据分析功能。
下载
立即学习
“
前端免费学习笔记(深入)
”;
移动端列堆叠、桌面端横排:必须写
(
启用 Flex,
设为竖排,
在 ≥640px 改为横排)
卡片网格列数渐进:用
,注意不能漏掉
基础类
字体大小响应式:推荐
,避免跳变,逐级放大
动态拼接类名时响应式会失效
Tailwind 是静态扫描 HTML 和 JS 中的字符串来生成 CSS 的,像
这种运行时拼接,
不会被识别,最终构建产物里没有这条规则。
解决方案一:预先把所有可能的类名写全,用条件判断开关,例如
解决方案二:用
或自定义 CSS 变量兜底,但失去 Tailwind 响应式能力
特别注意:JSX 中的模板字符串、Vue 的
动态绑定、Svelte 的
都存在同样限制
真正容易被忽略的是断点值的可变性——你本地开发时看到的
是 768px,但上线后如果 CI 构建用了另一份
,实际生效阈值可能完全不同。上线前务必确认配置一致,别依赖“经验”。
sm:md:lg:sm:hiddenlg:blockhiddendisplay: nonehidden sm:block lg:hiddenlg:hiddensm:blockhidden sm:block lg:hiddensm:block md:hidden lg:blockblock sm:hidden md:block lg:hiddenblock sm:hiddensm:md:lg:tailwind.config.jstheme.screenssm: '640px'md: '768px'lg: '1024px'xl: '1280px'2xl: '1536px'md'800px'md:window.innerWidthsm:sm:flextablet:text-red-500sm:flexflexflex flex-col sm:flex-rowflexflex-colsm:flex-rowgrid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4gridtext-base sm:text-lg md:text-xl lg:text-2xlclassName={`text-${size} ${isWide ? 'lg:w-1/2' : 'w-full'}`}lg:w-1/2className={`${isWide ? 'lg:w-1/2' : 'w-full'} w-full`}style:classclass:xxx={bool}md:tailwind.config.js