CSS 框架 词条目录
前端Wiki/CSS 框架/进阶/Tailwind CSS 原子化

响应式与状态前缀

Tailwind 的响应式和状态控制都靠前缀实现,这是它最优雅的设计。响应式前缀:sm: md: lg: xl: 2xl:(默认无前缀 = 手机),同样是移动优先、「大于等于生效」。一行 HTML 就能表达「手机一列、平板两列、桌面四列」:grid-cols-1 md:grid-cols-2 lg:grid-cols-4,完全不用写媒体查询。

状态前缀:hover:(悬停)、focus:(聚焦)、active:(按下)、disabled:(禁用)。按钮三连:bg-blue-500 hover:bg-blue-700 disabled:opacity-50——正常蓝、悬停深蓝、禁用半透明,传统写法要三段 CSS,这里一行搞定。

前缀可以组合:先响应式后状态,如 md:hover:bg-red-500(md 以上悬停才变红)。书写顺序建议固定为「状态在前缀内、响应式在最外」,保持团队统一。Dark 模式的前缀 dark: 在深入篇详讲。

本节要点响应式前缀 sm~2xl 是「≥生效」,移动优先;状态前缀 hover/focus/disabled 免写 CSS;前缀可组合如 md:hover:bg-red-500。
代码
<!-- 响应式前缀:sm md lg xl 2xl(无前缀=手机,均≥生效) -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
  <div class="bg-white p-4 rounded shadow">手机1列 平板2列 桌面4列</div>
  <!-- 复制多份观察效果 -->
</div>

<!-- 状态前缀:hover / focus / active / disabled -->
<button class="bg-blue-500 text-white px-4 py-2 rounded
               hover:bg-blue-700
               focus:ring-2 focus:ring-blue-300
               disabled:opacity-50">
  悬停变深、聚焦光环、禁用半透明
</button>

<!-- 输入框聚焦样式 -->
<input class="border border-gray-300 rounded px-3 py-2
              focus:border-blue-500 focus:outline-none">

<!-- 前缀组合:先响应式,再状态 -->
<p class="text-sm md:text-base lg:text-lg hover:text-blue-600">
  响应式字号 + 悬停变色
</p>