LESSON 3.2 / FIRST VISIBLE RESULT

CSS:盒模型、布局与响应式

CSS 负责页面怎样呈现。先看每个盒子的实际尺寸,再用布局规则分配空间,任务页面才能在窄屏和宽屏上都保持可读。

预计阅读约 25 到 40 分钟
完成结果能解释任务卡为什么换行,并让表单、筛选和列表在手机宽度下无需横向滚动。
本课目标
  • 能解释任务卡为什么换行,并让表单、筛选和列表在手机宽度下无需横向滚动。
  • 选择器、继承与样式覆盖
  • 验证CSS:盒模型、布局与响应式后,应当能解释任务卡为什么换行,并让表单、筛选和列表在手机宽度下无需横向滚动,并保留页面结构、不同宽度截图、控制台和元素状态作为可重复检查的依据。
开始之前
  • 完成 3.1「HTML:搭出有语义的页面结构」
01

FOUNDATION

必须理解

CSS 控制浏览器怎样排版已有内容。看懂尺寸和布局规则以后,你不必再靠反复试数字碰运气。

本课依次讲清选择器、继承与样式覆盖、盒模型、间距和可用宽度和Flex、Grid 与响应式布局,最后通过“加入窄屏规则,测试按钮换行、长标题和空状态”检查学习结果。

先建立整体直觉

HTML 列出了房间里的物品,CSS 像摆放说明。它决定桌子离墙多远、几件物品并排还是换行,以及房间变窄时怎样重新安排。

贯穿本课的实际场景

任务应用在宽屏上让输入框和按钮并排,在窄屏上改为上下排列。任务卡保持可读宽度,长标题可以自然换行。

概念 1

选择器、继承与样式覆盖

先用白话理解

选择器负责找到元素,声明负责设置样式。同一个属性可能来自多条规则,浏览器会结合匹配范围和书写顺序决定采用哪一个。

基础概念

CSS(Cascading Style Sheets,层叠样式表)用选择器找到 HTML 元素,再用属性和值描述外观。多条规则可能同时作用于同一个元素。

进一步理解

选择器回答改谁,声明回答改什么。浏览器会综合规则来源、选择器匹配范围和书写顺序,得到最终样式。

开发者工具的 Styles 面板会显示哪些声明生效、哪些被覆盖。排错时先看证据,比继续添加新规则更省时间。

放进实际场景

任务输入框同时受到 input 规则和表单内部规则影响。打开样式面板,可以看到最终宽度和间距来自哪一条声明。

容易混淆的地方

继承会让部分文字样式传给子元素,层叠会在多条规则中决定结果。两者都会影响最终画面,但发生原因不同。

这一小节记住:样式没生效时,先确认选择器命中,再检查规则是否被覆盖。

概念 2

盒模型、间距和可用宽度

先用白话理解

页面上的元素都可以看成盒子。内容外面依次有内边距、边框和外边距,最终占用宽度要把这些部分一起算进去。

基础概念

盒模型把一个元素占用的区域分成内容、内边距、边框和外边距。元素最终需要多少空间,取决于这几层共同作用。

进一步理解

内容区域放文字或子元素,padding 在内容和边框之间留白,border 画出边界,margin 负责元素外部距离。

设置 `box-sizing: border-box` 后,声明宽度会包含内边距和边框,更容易让表单控件待在容器内。

放进实际场景

任务输入框设为填满可用空间时,如果还额外加入内边距与边框,就要确认盒模型没有让它超过表单宽度。

容易混淆的地方

margin 处理元素外部距离,padding 处理元素内部留白。两者都能让画面出现空隙,却不能随意互换。

这一小节记住:尺寸问题先在盒模型图中找到是哪一层增加了空间。

概念 3

Flex、Grid 与响应式布局

先用白话理解

Flex 适合安排一行或一列中的项目,Grid 适合同时管理行和列。响应式布局关注可用空间,不等于为每一种设备写一套页面。

基础概念

布局规则决定多个元素怎样排列。Flex 适合一条主轴上的项目,Grid 适合同时管理行列,媒体查询可在空间不足时切换规则。

进一步理解

响应式布局根据可用空间调整排列方式。它通常保留同一份 HTML,只改变列数、换行和控件宽度。

窄屏检查不能只看首页截图。长标题、错误提示、多个按钮和空状态都会改变所需空间,也应一起测试。

放进实际场景

任务表单在宽屏让输入框和按钮同排,窄屏改为上下排列。任务标题过长时自然换行,按钮仍保持可点击。

容易混淆的地方

Flex 和 Grid 不是新旧替代关系。选择哪一个取决于要控制一条方向,还是需要明确的二维行列。

这一小节记住:布局要跟着内容和空间变化,不能只适配自己的屏幕。

02

AI COLLABORATION

AI 如何参与

在CSS:盒模型、布局与响应式这一课,AI 负责根据真实材料解释选择器、继承与样式覆盖并指出遗漏,学习者负责控制范围、执行修改和核对页面结构、不同宽度截图、控制台和元素状态。

推荐协作顺序

  1. 1

    先截取出问题的 HTML 和相关 CSS,不把整站都交给 AI。

  2. 2

    请 AI 解释元素当前占用宽度的来源,再提出最小修改。

  3. 3

    修改后拖动视口,并检查短内容、长内容和空列表。

可直接使用的 Prompt
这是任务页面的 HTML 和两张不同宽度的截图。请先列出布局问题和对应选择器,再给最小 CSS 修改。不要改 HTML,不使用绝对定位修补。每项修改都说明预期现象,并告诉我在盒模型和响应式模式中怎样验收。
应该得到什么

样式规则能对应到真实元素,布局会随可用宽度变化,长标题和按钮不会互相遮挡;CSS:盒模型、布局与响应式的人工验收必须回到真实页面、请求、终端、测试或数据结果,不能用 AI 的文字说明代替。

人工检查清单

  • 在开发者工具中关闭关键规则,确认自己知道哪一条负责当前布局,再用窄屏与长文字测试。
  • 让 AI 逐条对应选择器与页面元素,并说明为什么选择 Flex、Grid 或普通文档流。
  • 使用开发者工具切换窄屏,加入长任务标题和错误提示,核对没有遮挡与横向滚动。
03

COMMON TRAPS

常见误区

下面三类问题会让任务看似完成,却经不起刷新、错误输入或真实环境检查。先看现象,再找原因和修正方法。

误区 1

不断增加固定宽度

你会看到
当前屏幕正常,稍窄一点就溢出或遮挡
为什么发生
固定数值只适合当前视口,内容或屏幕一变就没有伸缩空间。
怎样纠正
优先使用可用宽度、最大宽度和自然换行
误区 2

用绝对定位拼页面

你会看到
内容增多后元素彼此覆盖
为什么发生
脱离正常布局的元素不会为后续内容让位,文字增多时就会互相覆盖。
怎样纠正
让主要区域参与正常布局,只把绝对定位留给局部叠放
误区 3

只拖动窗口凭感觉验收

你会看到
某些断点和长文本问题没有被发现
为什么发生
随手拖动很难重复同一尺寸,也容易漏掉临界宽度和极端内容。
怎样纠正
使用固定测试宽度并加入超长任务文本
04

HANDS-ON

动手任务

能解释任务卡为什么换行,并让表单、筛选和列表在手机宽度下无需横向滚动。

准备条件
  • 完成 3.1「HTML:搭出有语义的页面结构」

跟着做

  1. 01

    创建 style.css 并从 HTML 正确引用。

  2. 02

    设置基础字体、页面背景和内容最大宽度。

  3. 03

    用 Flex 排列表单,让输入框获得剩余空间。

  4. 04

    为任务项设置间距、边框和完成状态。

  5. 05

    加入窄屏规则,测试按钮换行、长标题和空状态。

完成标志

能解释任务卡为什么换行,并让表单、筛选和列表在手机宽度下无需横向滚动。

加餐挑战

只改变浏览器宽度,不修改 HTML,让任务列表在宽屏保持舒展,在手机宽度仍能完整操作。

离开本课前,自问四件事

  • 选择器、属性和值在一条 CSS 规则中分别做什么?
  • 盒模型四层怎样共同决定元素占用空间?
  • 什么时候更适合用 Flex,什么时候考虑 Grid?
  • 我用哪些内容和宽度验证页面确实能响应变化?
完成本课了吗?

确认完成后,会同步更新学习中心的课程学习进度。