响应式设计
你将学会什么
Section titled “你将学会什么”- 用
sm:、md:、lg:断点前缀控制响应式样式 - 按「先小屏后大屏」的顺序组织类名
- 在网格布局中逐级增加列数,而不是重写整块样式
真正适合学生项目的响应式写法,其实不需要写很多媒体查询。Tailwind 已经帮你封装好了常用断点,你只需要在类名前面加前缀:
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"> <div class="border rounded-lg p-4">卡片 A</div> <div class="border rounded-lg p-4">卡片 B</div> <div class="border rounded-lg p-4">卡片 C</div></div>这种写法的核心不是“我写了媒体查询”,而是“我先按最小屏幕写一列,再在更大屏幕上增加列数”。默认的 grid-cols-1 保证小屏一行一列,md:grid-cols-2 在中屏变成两列,lg:grid-cols-3 在大屏变成三列。这种思路在课程作业、作品集、课程小组项目中都能直接复用,而且不用离开 HTML 就能预览效果。
先自己回答,再看答案:
md:grid-cols-2表示什么含义?- 为什么默认值要写
grid-cols-1而不是直接写md:? - 断点前缀写法相比手写媒体查询的优势是什么?
参考答案
- 在
md及以上断点,网格每行显示两列。 - 保证最小屏幕(移动端)始终是单列,再逐级增强,避免小屏布局被破坏。
- 不用离开 HTML、不用维护成块的媒体查询代码,断点逻辑直接写在类名里。
- 响应式前缀:
sm:、md:、lg:,按屏幕从小到大递进 - 移动优先:先写最小屏幕的默认值,再逐级增加列数
- 网格布局只改
grid-cols-*前缀即可完成响应式,无需@media