HTML / CSS / JavaScript

CSS Grid 与 Flexbox:什么时候该用哪一个

学习目标:通过“CSS Grid 与 Flexbox:什么时候该用哪一个”掌握可在真实项目里复用的工程方法。本文不只解释概念,还给出环境要求、实施顺序、代码/配置、验证方法和故障排查。

适用场景与前置条件

使用现代浏览器、DevTools 和本地开发服务器;准备键盘操作与移动端视口测试,涉及 API 时确认 CORS 与错误响应。

如果这是第一次接触该主题,建议先在独立测试环境完成一遍完整流程,再把变更拆成小步骤进入真实项目。重要配置和数据修改都应先有备份或可恢复版本。

核心知识地图

  • HTML 提供语义结构,CSS 负责布局与视觉,JavaScript 负责行为;职责清晰能降低维护成本。
  • 浏览器渲染涉及 DOM、CSSOM、布局、绘制与合成,性能优化应针对真实瓶颈。
  • 网络请求不仅要处理 Promise reject,还要检查 HTTP 状态、超时和数据格式。
  • 可访问性不是附加功能,键盘、焦点、语义和对比度应从组件设计阶段考虑。

实施步骤

  1. 步骤 1:先用语义 HTML 完成无脚本也能理解的结构,再加入布局和交互。
  2. 步骤 2:用响应式布局和容器约束处理不同屏幕,不依赖固定像素堆叠。
  3. 步骤 3:为网络与用户输入增加 loading、empty、error 和 retry 状态。
  4. 步骤 4:通过 DevTools Network/Console/Performance 验证请求、错误和主线程开销。
  5. 步骤 5:使用 Lighthouse、键盘测试和真实设备做发布前检查。

代码 / 配置演示

下面的片段使用示例域名、测试数据和非真实凭据,重点展示结构与验证方式。复制到项目后,要根据当前版本的官方文档调整参数。

<!doctype html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<style>
.layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(16rem,1fr); gap:1rem; }
.toolbar { display:flex; flex-wrap:wrap; gap:.5rem; }
.card { padding:1rem; border:1px solid #d9e2dc; border-radius:.75rem; }
@media (max-width:720px){ .layout{ grid-template-columns:1fr; } }
</style>
<div class="toolbar"><button>筛选</button><button>排序</button></div>
<main class="layout">
  <section class="card"><h1>Grid 管整体布局</h1><p>适合二维区域与列关系。</p></section>
  <aside class="card"><h2>Flex 管局部排列</h2><p>适合一维工具栏和按钮组。</p></aside>
</main>

如何验证结果

不要只看“页面能打开”或“命令没有报错”。验证应至少包含三个维度:一是功能结果是否符合预期;二是日志、状态码、查询计划或指标能否证明请求走了正确路径;三是失败场景是否会返回明确错误并保持系统可恢复。对上线变更,建议记录变更前后数据,便于回归比较。

常见问题与排错

  • 把 div 当成所有控件,导致键盘和读屏器体验差。
  • 只在桌面宽屏测试,移动端出现横向滚动或触控区域过小。
  • fetch 收到 500 仍当成功数据解析。
  • 为了动画大量触发布局计算,造成滚动卡顿。

如果问题仍然存在,按配置 → 运行时 → 网络/依赖 → 数据 → 缓存的顺序逐层缩小范围。每次只改变一个主要变量,并保留失败日志;一次同时改多处会让真正原因更难确认。

上线检查清单

  • 版本和依赖已确认,示例配置没有直接复制生产密码或 Token。
  • 关键路径有可重复的验证命令、自动测试或健康检查。
  • 日志能定位一次请求/任务,且不会记录密码、Cookie、Token 等敏感值。
  • 数据库、配置、证书或部署变更有备份和回滚步骤。
  • 已阅读当前版本的官方文档,确认没有依赖过时 API 或废弃配置。

总结

“CSS Grid 与 Flexbox:什么时候该用哪一个”的价值不在于记住某一段命令,而在于建立稳定的判断流程:明确边界、做最小验证、观察真实运行结果、处理失败路径,再把验证固化为测试和文档。这样即使框架或版本变化,也能快速判断哪些部分需要调整。

SOURCE CODE

配套源码

这些文件随主题包分发,使用示例域名和非真实凭据。请先在独立测试环境验证。

web-frontend/web-frontend-02.html查看文件 →
REFERENCES

官方参考资料

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注