CSS 与响应式布局

用 Flexbox 排一维布局

把导航和卡片操作区改成能换行、对齐稳定的一维布局。

难度
入门
预计时间
40 分钟
最近验证
2026/9/21

这一节要完成什么

把导航和卡片操作区改成能换行、对齐稳定的一维布局。

先理解:为什么要学它

Flexbox 适合一行或一列的分配。

跟着做

.site-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
}
.card-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.card-actions > :last-child {
  margin-inline-start: auto;
}
  1. 先画出主轴方向:导航项从左到右,因此使用 row。
  2. 加入 display:flex 和 gap,删除用 margin 拼出来的间距。
  3. 缩窄窗口,打开 flex-wrap,确认项目换行而非溢出。
  4. 在 DevTools Flex overlay 中查看主轴、间隙和剩余空间。

关键代码怎么读

  • Flexbox 适合一行或一列的分配。
  • justify-content 沿主轴,align-items 沿交叉轴。
  • margin-inline-start:auto 可把一个项目推到末端。

常见错误:看到什么,检查什么

现象检查方法
内容被压得很窄允许 wrap 或给关键项目设置合理 basis。
垂直居中没效果确认当前交叉轴方向和容器是否有额外空间。

自己完成一次

用 Flexbox 完成顶部导航:品牌在前,链接成组,窄屏自动换行,Tab 顺序不因视觉排列改变。

完成后再看参考答案

只改变视觉布局,不使用 order 把焦点顺序打乱;320px 宽度没有横向滚动。

完成检查

  • 我完成了本节要求的可见结果
  • 我能解释关键代码的输入、处理和输出
  • 我测试了正常、边界和错误情况

隐私选择

必要存储始终启用。只有在你同意后,才会加载可选的访问统计与支持服务。