Flex 和 Grid
用于控制 Flex 和 Grid 布局的 JSX 样式属性
Flex Basis
使用flexBasis
属性来设置弹性项目的初始主尺寸。
<Flex>
<Box flexBasis="25%" />
<Box flexBasis="25%" />
<Box flexBasis="50%" />
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
flexBasis | flex-basis | - |
Flex 方向
使用 flexDir
或 flexDirection
属性来设置弹性容器中主轴的方向。
<Box display="flex" flexDirection="column">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
当使用 Flex
组件时,direction
属性是 flexDirection
的别名。
<Flex direction="column">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
flexDir , flexDirection | flex-direction | - |
Flex 换行
使用 flexWrap
属性来设置弹性项目是强制单行显示还是可以多行换行。
<Box display="flex" flexWrap="wrap">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
当使用 Flex
组件时,wrap
属性是 flexWrap
的别名。
<Flex wrap="wrap">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
flexWrap | flex-wrap | - |
Flex
使用 flex
属性来定义弹性容器或项目的灵活性。
<Flex>
<Box flex="1" />
<Box />
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
flex | flex | - |
Flex 增长
使用 flexGrow
属性来设置弹性项目的弹性增长因子。
<Flex>
<Box flexGrow="0" />
<Box flexGrow="1" />
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
flexGrow | flex-grow | - |
Flex 收缩
使用 flexShrink
属性来设置弹性项目的弹性收缩因子。
<Flex>
<Box flexShrink="0" />
<Box flexShrink="1" />
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
flexShrink | flex-shrink | - |
顺序
使用 order
属性来设置弹性项目的顺序。
<Flex>
<Box order="0" />
<Box order="1" />
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
order | order | - |
间隙
使用 gap
属性来设置弹性或网格容器中项目之间的间隙。
<Flex gap="4">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
gap | gap | 间距 |
网格模板列
使用 gridTemplateColumns
属性来定义网格容器的列。
<Box display="grid" gridTemplateColumns="repeat(3, minmax(0, 1fr))">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
当使用 Grid
组件时,templateColumns
属性是 gridTemplateColumns
的别名。
<Grid templateColumns="repeat(3, minmax(0, 1fr))">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Grid>
网格模板开始/结束
使用 gridTemplateStart
和 gridTemplateEnd
属性来定义网格容器的开始和结束。
<Box display="grid" gridTemplateColumns="repeat(3, minmax(0, 1fr))">
<Box>Item 1</Box>
<Box gridColumn="span 2 / span 2">Item 2</Box>
<Box>Item 3</Box>
</Box>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
gridTemplateStart | grid-template-start | - |
gridTemplateEnd | grid-template-end | - |
网格模板行
使用 gridTemplateRows
属性来定义网格容器的行。
<Box display="grid" gap="4" gridTemplateRows="repeat(3, minmax(0, 1fr))">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
gridTemplateRows | grid-template-rows | - |
网格行开始/结束
使用 gridRowStart
和 gridRowEnd
属性来定义网格项目的开始和结束。
<Box display="grid" gap="4" gridTemplateRows="repeat(3, minmax(0, 1fr))">
<Box gridRowStart="1" gridRowEnd="3">
Item 1
</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
gridRowStart | grid-row-start | - |
gridRowEnd | grid-row-end | - |
网格自动流
使用 gridAutoFlow
属性来定义自动放置的项目如何流入网格。
<Box display="grid" gridAutoFlow="row">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
gridAutoFlow | grid-auto-flow | - |
网格自动列
使用 gridAutoColumns
属性来指定未明确定义大小的网格列的大小。
<Box display="grid" gridAutoColumns="120px">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
gridAutoColumns | grid-auto-columns | - |
网格自动行
使用 gridAutoRows
属性来指定未明确定义大小的网格行的大小。
<Box display="grid" gridTemplateRows="200px" gridAutoRows="120px">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
gridAutoRows | grid-auto-rows | - |
内容对齐
使用 justifyContent
属性来沿弹性容器的主轴对齐项目。
<Box display="flex" justifyContent="center">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
当使用 Flex
组件时,justify
属性是 justifyContent
的别名。
<Flex justify="center">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
justifyContent | justify-content | - |
项目对齐
使用 justifyItems
属性来控制网格项目在其范围内的对齐方式。
<Box display="grid" justifyItems="center">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
justifyItems | justify-items | - |
内容对齐
使用 alignContent
属性在有额外空间时沿弹性容器的交叉轴对齐内容行。
<Box display="flex" alignContent="center">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
当使用 Flex
组件时,align
属性是 alignContent
的别名。
<Flex align="center">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
alignContent | align-content | - |
项目对齐
使用 alignItems
属性来控制网格项目在其范围内的对齐方式。
<Box display="grid" alignItems="center">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
自身对齐
使用 alignSelf
属性来控制网格项目在其范围内的对齐方式。
<Box display="grid">
<Box alignSelf="center">Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
alignSelf | align-self | - |
放置内容
使用 placeContent
属性同时沿块级和行内方向对齐内容。它的作用类似于 justifyContent
和 alignContent
的组合,可用于弹性容器和网格容器。
<Flex placeContent="center">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Flex>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
placeContent | place-content | - |
放置项目
使用 placeItems
属性同时沿块级和行内方向对齐项目。它的作用类似于 justifyItems
和 alignItems
的组合,可用于弹性容器和网格容器。
<Box display="grid" placeItems="center">
<Box>Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
placeItems | place-items | - |
放置自身
使用 placeSelf
属性同时沿块级和行内方向对齐网格项目。
<Box display="grid">
<Box placeSelf="center">Item 1</Box>
<Box>Item 2</Box>
<Box>Item 3</Box>
</Box>
属性 | CSS 属性 | 令牌类别 |
---|---|---|
placeSelf | place-self | - |