Skip to content

布局样式

Piant 的布局系统基于 Yoga Layout,提供与 CSS Flexbox 高度兼容的布局属性。

尺寸属性

属性类型说明
widthNumberValue | 'auto'元素宽度(像素、百分比或 'auto')
heightNumberValue | 'auto'元素高度
minWidthNumberValue最小宽度
maxWidthNumberValue最大宽度
minHeightNumberValue最小高度
maxHeightNumberValue最大高度
aspectRationumber宽高比(如 16/9

NumberValue 类型支持:

  • 数字(像素),如 200
  • 百分比字符串,如 '50%'
  • 数字字符串,如 '200'

Flexbox 属性

容器属性

属性可选值说明
display'flex' | 'none' | 'contents'显示类型
flexDirection'row' | 'column' | 'row-reverse' | 'column-reverse'主轴方向
flexWrap'nowrap' | 'wrap' | 'wrap-reverse'是否换行
justifyContent'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'主轴对齐
alignItems'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline'交叉轴对齐
alignContent'flex-start' | 'flex-end' | 'center' | 'stretch' | 'space-between' | 'space-around' | 'space-evenly'多行交叉轴对齐
gapnumber子元素间距(行列同时设置)
rowGapnumber行间距
columnGapnumber列间距

子项属性

属性类型说明
flexnumber弹性因子(grow + shrink 简写)
flexGrownumber弹性增长系数
flexShrinknumber弹性收缩系数
flexBasisNumberValue | 'auto'弹性基准尺寸
alignSelfalignItems覆盖容器的 alignItems

内外边距

属性说明
padding四边内边距
paddingTop / paddingBottom / paddingLeft / paddingRight单边内边距
paddingInline左右内边距简写
paddingBlock上下内边距简写
paddingStart / paddingEnd逻辑属性(LTR/RTL 感知)
margin四边外边距(支持 'auto'
marginTop / marginBottom / marginLeft / marginRight单边外边距
marginInline左右外边距简写
marginBlock上下外边距简写

定位

属性可选值说明
position'relative' | 'absolute' | 'static'定位方式
topNumberValue距顶部偏移
bottomNumberValue距底部偏移
leftNumberValue距左侧偏移
rightNumberValue距右侧偏移
insetNumberValue四边偏移简写

其他属性

属性可选值说明
overflow'visible' | 'hidden' | 'scroll'溢出处理
boxSizing'border-box' | 'content-box'盒模型
direction'ltr' | 'rtl'文字和布局方向

示例

tsx
// 水平居中的固定宽度容器
<View
  style={{
    width: 400,
    flexDirection: 'column',
    alignItems: 'center',
    gap: 16,
    padding: 24,
  }}
/>

// 两列等宽布局
<View style={{ flexDirection: 'row', gap: 8 }}>
  <View style={{ flex: 1 }} />
  <View style={{ flex: 1 }} />
</View>

// 绝对定位
<View style={{ position: 'absolute', top: 10, right: 10, width: 50, height: 50 }} />

Released under the MIT License.