麦式参考 MickerBook Reference

响应式设计

Responsive Design

也常被叫作:自适应适配手机移动端适配

你可能会这么说

「同一个网页,电脑上好看,手机上一打开就乱成一团,能不能让它自己适应?」

响应式设计 Responsive Design

让同一个页面根据屏幕宽度自动调整布局,一套代码适配电脑、平板、手机。

响应式设计的意思是:同一个页面,一套代码,在不同宽度的屏幕上自动换样子。 屏幕宽就一排放三个卡片,屏幕窄就一列叠起来;导航放不下就收进一个按钮。它不是给手机单独做一个网站,而是让布局规则里带上「屏幕多宽时怎么排」的条件。

实现它的三个常用工具:弹性布局(用相对单位,不写死像素宽)、媒体查询(「当宽度小于 768px 时按这套规则排」)、可伸缩图片(图片跟着容器走,不撑破屏幕)。判断一个页面做没做响应式,最简单的测试就是把浏览器窗口从宽拖到窄,看它有没有跟着变。

最容易翻车的地方:电脑版做完了,手机版从没被真正看过一眼。 AI 写代码时默认在宽屏上验证,窄屏下的错位、重叠、被截断它看不到。所以验收响应式必须真把窗口缩到手机宽度(或用开发者工具的设备模拟)逐个检查,而不是只看截图。还要注意:响应式是「同一套内容重新布局」,不是「把字缩小到看不见」——缩小只是让内容活着,不是让内容可用。

长什么样 真实可交互,不是截图

≥1024px 三列768px 两列≤480px 单列
✕ 没做响应式手机上打开
文字重叠、横向滚动、按钮点不到
✓ 做了响应式一列排开
字号可读、按钮够大、不用横滑

同样的内容,三个宽度三种排法——这就是响应式。验证方法也写在这里了:把窗口拖窄,看它变不变。

拆开看,里面有这几块

  1. 1
    断点 Breakpoint

    布局切换的宽度阈值,常见 768px、480px。

  2. 2
    媒体查询 Media query

    「当屏幕满足某条件时应用这套规则」的 CSS 写法,是响应式的核心开关。

  3. 3
    弹性布局 Fluid layout

    用相对单位让元素随容器伸缩,而不是写死像素宽。

  4. 4
    可伸缩图片 Fluid images

    图片宽度跟随容器,最大不超过屏幕,不撑破布局。

  5. 5
    移动端视口 Viewport meta

    告诉手机「按真实屏幕宽度渲染」。不写它,页面会被整体放大显示。

常见的有哪几种

桌面优先Desktop-first

先做宽屏,再用媒体查询适配窄屏。

用在:桌面端是主要使用场景

移动优先Mobile-first

先做窄屏,再逐步增强宽屏。

用在:手机用户为主

自适应Adaptive

只在少数几个固定断点切换布局,而不是连续变化。

用在:设备类型固定、实现求简

容易搞混?这样区分

响应式设计 独立移动站 Separate mobile site

响应式是一套代码自己适应宽度;独立移动站是另一套页面(常见独立域名)。两套页面等于两套维护、两套内容同步问题。

响应式设计 缩放 Zoom

响应式是重新布局(元素移动、堆叠、重排);缩放只是把字变小。把字缩小不叫响应式,手机上那叫「内容活着但没法用」。

响应式设计 CSS CSS

CSS 是样式语言,响应式是一种布局策略——用 CSS 的媒体查询和弹性单位实现。就像「动画」和「用 CSS 做动画」的关系。

看 CSS

什么时候用得上

手机打开布局乱

先在开发者工具的设备模拟里看,确认是断点没设还是弹性没做,再对症改。

上线前检查

至少验 3 个宽度:手机 375px、平板 768px、桌面 1280px。

图片撑破屏幕

图片没限最大宽度。加最大宽度限制,图片就跟着容器走了。

你可以这样跟 AI 说

直接复制下面这段,把【】里的换成你的情况。它比一句「帮我加个 X」多说清楚了:改哪里、不许动啥、做完交什么。

【任务】把 [页面 / 组件] 做成响应式,适配手机、平板、桌面
【目标】
  1. 在 1280px、768px、375px 三个宽度下都能正常使用:不横向滚动、不重叠、不截断
  2. 手机宽度下:导航收进按钮、卡片单列堆叠、点击区域高度 ≥44px
  3. 图片不撑破屏幕,手机字号可读(不是单纯缩小)
【边界】
  - 不要为「适配」改动内容顺序和语义结构
  - 不要新建独立手机页面或域名
  - 不要用 JS 判断屏幕宽度来实现,能用 CSS 就用 CSS
【交付】
  1. 改了哪些文件、加了哪些断点和规则
  2. 我自己怎么验证:浏览器缩到哪几个宽度、每个宽度该看到什么
  3. 你在哪个宽度实际看过、哪个宽度没验证

「不要用 JS 判断屏幕宽度」挡掉了最常见的偷懒写法——JS 判断在窗口变化、旋转时会闪变、出 bug,CSS 媒体查询才是正路。「哪个宽度没验证」逼它承认验证范围,别让它拿桌面截图蒙混。

它说「做好了」,你怎么自己验

这是本站的重头戏。AI 最会的不是写代码,是说「已完成」。这一条,它通常最多做到「主路径」这层:真实用户的正常操作能走通,不靠特殊参数。

要亲眼看到这些,才算数

  • 把浏览器窗口从宽拖到窄,页面跟着变,窄到手机宽度时没有横向滚动条。
  • 用开发者工具的设备模拟,依次看 375px / 768px / 1280px:内容不重叠、不截断、不跑到屏幕外。
  • 手机上点主要按钮 / 链接,能点到,点击区域够大。
  • 图片没有撑破屏幕,文字没有小到看不清(也不是靠缩小字)。
  • 旋转屏幕(竖→横)后布局仍可用,没有内容跑出屏幕。

它常这么糊弄你

  • 「已做响应式适配」——但只验过桌面宽度。要求它列出在哪个宽度实际看过。
  • 「手机上没法看,但代码是对的」——没验证过的不叫做完。
  • 把字缩小、内容截掉,声称「已适配手机」——那叫内容活着,不叫可用。
  • 用 JS 判断宽度做切换,声称「更灵活」——窗口变化、旋转时会闪变、卡住,CSS 媒体查询才是正路。

响应式能验到「主路径」层:真实用户在不同宽度设备上的正常操作走通。全程在浏览器里就能做,不需要看代码。

考考你 选一个你觉得对的

验收「响应式」最有效的动作是?