Skip to content

Flex 布局

基于 Flexbox 的布局组件,提供对方向、对齐、换行和间距的灵活控制。深度集成 BrConfigProvider,支持响应式属性和全局主题配置。

基础用法

使用 gap, justify, 和 align 属性快速构建布局。

Example

垂直布局

设置 direction="col" 以切换到垂直布局。

Example

响应式布局

direction, gap, justify, align 等核心属性支持响应式对象配置。你可以为不同的断点(sm, md, lg, xl, 2xl)设置不同的值。

Mobile: Column & Small Gap | Tablet+: Row & Large Gap

Item A
Item B
Item C
Example

主题与 Token

BrFlexgap 属性支持引用 BrConfigProvider 中定义的尺寸 Token。通过全局或局部配置 BrConfigProvider,你可以统一间距标准。

在下面的例子中,我们定义了一个名为 xl (paddingX: 4rem) 的尺寸 Token,并通过 gap="xl" 直接在 BrFlex 中使用。

Using global token 'xl' (defined as 4rem) for gap:

Example

API

BrFlex Props

属性名类型默认值说明
asstring'div'渲染的 HTML 标签或组件
directionResponsiveProp<FlexDirection>'row'Flex 方向。可选值:row, row-reverse, col, col-reverse
wrapResponsiveProp<FlexWrap>'nowrap'Flex 换行。可选值:nowrap, wrap, wrap-reverse
justifyResponsiveProp<FlexJustify>'start'主轴对齐。可选值:start, end, center, between, around, evenly
alignResponsiveProp<FlexAlign>'start'交叉轴对齐。可选值:start, end, center, baseline, stretch
gapResponsiveProp<string | number>-间距。支持 Tailwind 数字(如 '4')或 ConfigProvider Token(如 'md'
gapXResponsiveProp<string | number>-水平间距
gapYResponsiveProp<string | number>-垂直间距
growbooleanfalse是否放大 (flex-grow)
shrinkbooleanfalse是否缩小 (flex-shrink)
basisstring | number-基础尺寸 (flex-basis)

类型说明

ResponsiveProp<T>

属性可以直接是值 T,或者是一个包含断点的对象:

ts
type ResponsiveProp<T> = T | {
  base?: T
  sm?: T
  md?: T
  lg?: T
  xl?: T
  '2xl'?: T
  [key: string]: T | undefined
}

示例:

vue
<!-- 简单值 -->
<BrFlex direction="row" />

<!-- 响应式对象 -->
<BrFlex
  :direction="{ base: 'col', md: 'row' }"
  :gap="{ base: '2', lg: '4' }"
/>