Skip to content

Flex 弹性布局

封装 CSS flexbox 的常用属性,配合主题间距 token 让"行内 / 垂直 / 两端对齐"等场景更直白。

何时使用

  • 行内或垂直排列一组组件,间距用 token 控制。
  • 两端对齐:左侧标题 + 右侧操作按钮。
  • 子元素需要 flex-grow 自动撑开剩余空间。

基本使用

默认水平方向,gap 决定间距(数字按 px,也可用 small / middle / large)。

间距预设

gap 接收 'small' / 'middle' / 'large',分别对应 8 / 16 / 24px。

垂直布局

vertical 把方向切到列。

对齐方式

justify 对应 justify-contentalign 对应 align-items

自动换行

wrap 设为 true(或具体的 wrap / wrap-reverse / nowrap)控制超出容器时是否换行。

flex 简写撑满剩余空间

子组件包一层 <c-flex> 并设置 flex="1" 可以让它独占剩余空间。

自定义元素

component 改变渲染的标签,常用于语义化(section / nav / header 等)。

justify 全枚举

横轴对齐六种取值的视觉对照。

align 全枚举

纵轴对齐五种取值的视觉对照(容器有显式高度时差异最明显)。

反向换行

wrap="wrap-reverse" 让超出的子项在前一行的上方折回。

嵌套布局:页面骨架

vertical + 子级 <c-flex> 组合可以快速搭出「页头 / 主体(侧栏 + 内容)/ 页脚」三段式骨架。

业务工具栏(与 Space 区别)

<c-flex justify="space-between"> 适合「左标题 / 右操作」两端分布;<c-space> 更适合一组按钮挨在一起的等距间隔。两者可以套用:外 Flex 分两端,内 Space 排操作组。

API

Props

参数类型默认值说明
verticalbooleanfalse垂直方向
wrapboolean | 'wrap' | 'nowrap' | 'wrap-reverse'false是否换行
justifyCSSProperties['justifyContent']'normal'对应 justify-content
alignCSSProperties['alignItems']'normal'对应 align-items
flexstring'normal'flex 简写(如 '1', '0 0 auto'
gapstring | number间距:small / middle / large 或数字
componentstring'div'渲染的标签

Released under the MIT License.