CSS Flexbox 生成器

可视化设置弹性容器的方向、换行、主轴与交叉轴对齐、间距,以及每个项目的伸缩、顺序和自身对齐,实时显示子项并可复制 CSS。

容器

只有当项目换行成多行时,align-content 才会生效。

项目 1

在此选择项目,或在预览中点击它。

预览

拖动预览右下角可调整容器大小。

CSS 代码
.container {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: stretch;
  gap: 10px;
}

相关工具

查看全部

什么是 CSS Flexbox 生成器?

这是一个交互式 Flexbox 练习场:设置容器属性,添加最多 12 个子项,并为每个项目调整 flex-grow、flex-shrink、flex-basis、order 和 align-self。预览应用的正是生成的 CSS。

如何使用 CSS Flexbox 生成器

  1. 设置容器:flex-direction、flex-wrap、justify-content、align-items、align-content 和 gap。
  2. 选择预览中显示的“项目数量”。
  3. 选中一个项目(点击按钮或在预览中点击),并设置 flex-grow、flex-shrink、flex-basis、order 和 align-self。
  4. 拖动预览的角来调整其大小,看看布局如何响应。
  5. 复制 .container 和 .item-n 规则的 CSS 代码。

示例

输入
justify-content space-between, gap 16px; item 2: flex-grow 1, order 2, align-self center
输出
.container {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: stretch;
  gap: 16px;
}

.item-2 {
  flex: 1 1 auto;
  order: 2;
  align-self: center;
}

何时使用 CSS Flexbox 生成器

Flexbox 适合一维布局:导航栏、工具栏、按钮组、媒体对象和居中。对于同时包含行和列的二维页面布局,CSS Grid 生成器通常是更好的工具。

CSS Flexbox 生成器 的工作原理

容器总是带有 display: flex,加上 direction、wrap、justify-content 和 align-items。align-content 只在项目可以换行时才写入(对单行没有效果),gap 只在大于 0 时才写入。对于项目,只写入与默认值不同的值:不是 0 1 auto 时写 flex: grow shrink basis,不为 0 时写 order,不是 auto 时写 align-self,规则名为 .item-1、.item-2……无效的 flex-basis 会被标记并忽略。

常见用例

  • 水平和垂直居中内容
  • 带有靠右项目的导航栏
  • 用 flex: 1 实现等宽列
  • 可换行的标签或卡片列表
  • 用 order 在视觉上重新排序项目

常见问题

为什么我的 CSS 中没有 align-content?

align-content 只用于分配换行的 flex 容器中的各行。在 flex-wrap: nowrap 时只有一行,所以工具把它省略了。

flex: 1 1 auto 是什么意思?

项目可以从其自动尺寸开始放大(1)和缩小(1)。flex-grow 决定多余空间如何在项目之间分配。

order 会影响无障碍吗?

order 只改变视觉顺序。屏幕阅读器和键盘焦点仍然遵循 HTML 源码顺序,所以不要用它来做有意义的重新排序。

推荐的下一步

探索更多分类