弹性布局组件,支持版本1.19.0+。
display: flex实现。自定义组件的间距是 Box 算出来,同style透传给子组件的,因此子组件需要至少透传style属性;
// wrong
function Foo() {
return <div />;
}
// correct
function Foo({ style }) {
return <div style={style} />;
}
justify align 等价于justify-contents align-items,用来设置 Box 的主轴方向、垂直主轴方向的对齐方式,即:
direction 为 row 时, align 控制垂直方向, justify 控制水平方向;direction 为 column 时(默认值), justify 控制垂直方向, align 控制水平方向。| 参数 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| flex | 同 CSS 属性 flex,支持数组方式设置 |
| CSS.Property.Flex | [CSS.Property.FlexGrow, CSS.Property.FlexShrink, CSS.Property.FlexBasis] |
- | |
| direction | 布局方向,同 CSS 属性 flex-direction |
CSS.Property.FlexDirection | 'column' | |
| wrap | 是否折行 | boolean | false | |
| spacing | 元素之间的间距 | Spacing | - | |
| margin | 容器外间距 | Spacing | - | |
| padding | 容器内间距 | Spacing | - | |
| justify | 沿着主轴方向,子元素们的排布关系,同 CSS 属性 justify-content |
CSS.Property.JustifyContent | - | |
| align | 沿交叉轴方向,子元素们的排布关系,同 CSS 属性 align-items |
CSS.Property.AlignItems | - | |
| component | 定制 JSX 标签名 | keyof React.JSX.IntrinsicElements | 'div' |
export type Spacing =
| number
| [topAndBottom: number, rightAndLeft: number]
| [top: number, rightAndLeft: number, bottom: number]
| [top: number, right: number, bottom: number, left: number];