⭐ 觉得好用?收藏备用,下次直接打开
实时预览
CSS
 

Flexbox / Grid 生成器 把两种最常用的 CSS 布局做成可视化面板:点选 flex-direction、justify-content、align-items、wrap、gap 或 Grid 的列数、列宽模式、对齐方式,右侧预览里的方块实时跟着排布,下方同步生成可直接复制的 CSS。不用背属性、不用反复刷新,调到满意就拿走代码。

主轴 vs 交叉轴(Flexbox 核心)

Flexbox 一切围绕「主轴」展开:

方向主轴justify-contentalign-items
row(默认)水平 →左右分布上下对齐
column垂直 ↓上下分布左右对齐

记住「justify 跟着主轴走、align 管交叉轴」,切一下 direction 在预览里观察方块怎么动,方向感很快就建立起来。

Flex 还是 Grid

  • Flexbox — 一维(一排或一列),按需对齐与换行:导航、按钮组、标签流、表单行
  • Grid — 二维(行 × 列),行列同时对齐:卡片网格、整页骨架、仪表盘

两者可以嵌套:常见做法是 Grid 搭整体框架,框架里的每个区块再用 Flex 排内部元素。

📍使用场景

  • 快速试出想要的对齐记不清 justify-content 和 align-items 哪个管主轴、哪个管交叉轴?点几个按钮看预览里方块怎么动,对齐对了直接复制生成的 CSS 贴进项目。
  • 搭一个响应式卡片排布用 Flex 的 wrap + gap 或 Grid 的多列,先在可视化里把列数、间距、换行调到满意,再把代码套到自己的卡片/导航/表单上。
  • 教学与对照 Flex vs Grid同一组方块切到 Flex 或 Grid 两个标签下,直观感受一维布局和二维布局的差异,理解什么时候该用哪个。

常见问题

justify-content 和 align-items 有什么区别?

看主轴方向。在 Flexbox 里 justify-content 控制主轴上的分布、align-items 控制交叉轴上的对齐。当 flex-direction 是 row(默认)时,主轴是水平的,justify-content 管左右、align-items 管上下;切成 column 后两者的方向就互换了——这正是很多人觉得"怎么调反了"的原因,在预览里改一下 direction 立刻就直观了。

什么时候用 Flexbox,什么时候用 Grid?

Flexbox 是一维布局,擅长把一排(或一列)元素按需对齐、分配空间、换行,适合导航条、按钮组、标签流;Grid 是二维布局,能同时控制行和列,适合卡片网格、整页框架、需要行列对齐的复杂排版。简单一行/一列优先 Flex,规整的行列矩阵用 Grid。

align-content 为什么有时候没反应?

align-content 只在多行时才生效——也就是 flex-wrap 设为 wrap 且内容确实换了行,它控制的是这些行整体在交叉轴上的分布。单行(nowrap)时它没有作用,所以本工具只在选了 wrap 后才显示这一项。

1fr、minmax、auto 这几种列宽有什么不同?

1fr 是按比例平分剩余空间,每列等宽、随容器伸缩;auto 让列宽由内容撑开,多少内容占多宽;minmax(60px, 1fr) 是两者折中——不小于 60px,有空间时再按 1fr 拉伸,常用于既要保底宽度又要自适应的响应式网格。

gap 所有浏览器都支持吗?

现代浏览器对 Flexbox 和 Grid 的 gap 都已普遍支持(Grid 一直支持,Flex 的 gap 自 2020 年起各主流浏览器陆续到位)。如果要兼容很老的浏览器,可改用子项 margin 的老写法,但日常项目用 gap 没问题。

复制出来的代码怎么用?

代码是给容器用的(默认类名 .container),把它套在你的父元素上,子元素会自动按设定排布。把类名换成你项目里的实际名称即可;预览里的方块只是占位,换成你的真实内容不影响布局规则。