跳到主要内容

布局属性

信息

关于这些属性的更详细示例可以在基于 Flexbox 的布局页面找到。

示例

以下示例展示了不同属性如何影响或塑造 React Native 布局。你可以尝试在 UI 中添加或删除方块,同时改变属性 flexWrap 的值。


参考

属性

alignContent

alignContent 控制行在交叉轴方向的对齐方式,覆盖父元素的 alignContent

详情请参阅 MDN CSS 参考

类型必需
枚举('flex-start', 'flex-end', 'center', 'stretch', 'space-between', 'space-around', 'space-evenly')

alignItems

alignItems 用来在交叉轴方向对齐子元素。例如,如果子元素是垂直排列的,alignItems 控制它们在水平方向上的对齐。它的工作机制与 CSS 中的 align-items 类似(默认值:stretch)。

详情请参阅 MDN CSS 参考

类型必需
枚举('flex-start', 'flex-end', 'center', 'stretch', 'baseline')

alignSelf

alignSelf 控制单个子元素在交叉轴方向的对齐方式,覆盖父元素的 alignItems。它的工作机制与 CSS 中的 align-self 类似(默认值:auto)。

详情请参阅 MDN CSS 参考

类型必需
枚举('auto', 'flex-start', 'flex-end', 'center', 'stretch', 'baseline')

aspectRatio

宽高比控制节点未定义维度的大小。

  • 对于指定了宽度或高度的节点,宽高比控制未设置的维度的大小。
  • 对于设置了 flex basis 的节点,宽高比在未设置时控制交叉轴方向的大小。
  • 对于带测量函数的节点,宽高比相当于测量函数测量的是 flex basis。
  • 对于具有 flex grow/shrink 的节点,宽高比在未设置时控制交叉轴方向的大小。
  • 宽高比会考虑最小/最大尺寸限制。

详情请参阅 MDN CSS 参考

类型必需
number, string

borderBottomWidth

borderBottomWidth 类似于 CSS 中的 border-bottom-width

详情请参阅 MDN CSS 参考

类型必需
number

borderEndWidth

当方向为 ltr 时,borderEndWidth 等同于 borderRightWidth;当方向为 rtl 时,borderEndWidth 等同于 borderLeftWidth

类型必需
number

borderLeftWidth

borderLeftWidth 类似于 CSS 中的 border-left-width

详情请参阅 MDN CSS 参考

类型必需
number

borderRightWidth

borderRightWidth 类似于 CSS 中的 border-right-width

详情请参阅 MDN CSS 参考

类型必需
number

borderStartWidth

当方向为 ltr 时,borderStartWidth 等同于 borderLeftWidth;当方向为 rtl 时,borderStartWidth 等同于 borderRightWidth

类型必需
number

borderTopWidth

borderTopWidth 类似于 CSS 中的 border-top-width

详情请参阅 MDN CSS 参考

类型必需
number

borderWidth

borderWidth 类似于 CSS 中的 border-width

详情请参阅 MDN CSS 参考

类型必需
number

bottom

bottom 是组件底部边缘的逻辑像素偏移量。

它的用法类似于 CSS 中的 bottom,但在 React Native 中必须使用点数或百分比,不支持 em 等其他单位。

详情请参阅 MDN CSS 参考 了解 bottom 如何影响布局。

类型必需
number, string

boxSizing

boxSizing 定义元素各种尺寸属性(如 widthheightminWidthminHeight 等)如何计算。如果 boxSizingborder-box,这些尺寸应用于元素的边框盒;如果为 content-box,应用于元素的内容盒。默认值为 border-box。若想深入了解此属性,推荐参考 web 文档

类型必需
枚举('border-box', 'content-box')

columnGap

columnGap 类似于 CSS 中的 column-gap。React Native 中仅支持像素单位。

详情请参阅 MDN CSS 参考

类型必需
number

direction

direction 指定用户界面的文本方向流。默认值为 inherit,根节点除外,其值基于当前语言环境。

详情请参阅 MDN CSS 参考

类型必需
枚举('inherit', 'ltr', 'rtl')

display

display 设置此组件的显示类型。

类似于 CSS 中的 display,但仅支持 'flex'、'none' 和 'contents',默认值为 flex

类型必需
枚举('none', 'flex', 'contents')

end

当方向为 ltr 时,end 等同于 right;当方向为 rtl 时,end 等同于 left

此样式优先于 leftright

类型必需
number, string

flex

在 React Native 中,flex 的行为与 CSS 不同。flex 是数字类型,而非字符串,且基于 Yoga 布局引擎工作。

  • flex 为正数时,组件具有弹性,大小按 flex 值比例分配。例如设置 flex: 2 的组件将占用两倍于 flex: 1 组件的空间。flex: <正数> 等价于 flexGrow: <正数>, flexShrink: 1, flexBasis: 0
  • flex 为 0 时,组件按 widthheight 大小固定,无弹性。
  • flex 为 -1 时,组件通常按 widthheight 尺寸;但空间不足时会收缩到最小宽度和高度。
  • flexGrowflexShrinkflexBasis 的行为和 CSS 相同。
类型必需
number

flexBasis

flexBasis 是沿主轴定义元素默认大小的独立于轴的属性。设置子元素的 flexBasis 类似于当父容器 flexDirection: row 时设置 width,或当父容器 flexDirection: column 时设置 height。它是子元素在进行 flexGrowflexShrink 计算前的默认大小。

类型必需
number, string

flexDirection

flexDirection 控制容器子元素的排列方向。row 表示从左到右,column 表示从上到下,另外两个方向分别是这两者的反向。它的作用类似于 CSS 中的 flex-direction,但默认值为 column

详情请参阅 MDN CSS 参考

类型必需
枚举('row', 'row-reverse', 'column', 'column-reverse')

flexGrow

flexGrow 描述容器主轴上如何分配剩余空间。当容器布局完子元素后,会根据子元素的 flexGrow 比例分配剩余空间。

flexGrow 接受大于等于 0 的浮点数,默认为 0。容器会根据子元素 flexGrow 的权重来分配剩余空间。

类型必需
number

flexShrink

flexShrink 描述当子元素总尺寸超出容器主轴尺寸时,如何按比例缩小子元素大小。flexShrink 类似于 flexGrow,可以把超出尺寸看作负的剩余空间。这两个属性常配合使用,允许子元素根据需要增长或缩小。

flexShrink 接受大于等于 0 的浮点数,默认为 0。容器将按子元素 flexShrink 权重缩小子元素。

类型必需
number

flexWrap

flexWrap 控制子元素是否在达到 flex 容器末尾后折行。类似于 CSS 的 flex-wrap(默认值:nowrap)。

注意,它不再支持与 alignItems: stretch(默认值)一同使用,因此通常需要设置为 alignItems: flex-start 等(破坏性变更详情见 https://github.com/facebook/react-native/releases/tag/v0.28.0)。

详情请参阅 MDN CSS 参考

类型必需
枚举('wrap', 'nowrap', 'wrap-reverse')

gap

gap 类似于 CSS 的 gap。React Native 中仅支持像素单位。

详情请参阅 MDN CSS 参考

类型必需
number

height

height 设置组件高度。

类似于 CSS 的 height,但在 React Native 中必须使用点数或百分比,不支持 em 等其他单位。

详情请参阅 MDN CSS 参考

类型必需
number, string

inset

备注

inset 仅在新架构中可用

设置 inset 等同于分别设置 topbottomrightleft

详情请参阅 MDN CSS 参考

类型必需
number, string

insetBlock

备注

insetBlock 仅在新架构中可用

等同于 topbottom

详情请参阅 MDN CSS 参考

类型必需
number, string

insetBlockEnd

备注

insetBlockEnd 仅在新架构中可用

等同于 bottom

详情请参阅 MDN CSS 参考

类型必需
number, string

insetBlockStart

备注

insetBlockStart 仅在新架构中可用

等同于 top

详情请参阅 MDN CSS 参考

类型必需
number, string

insetInline

备注

insetInline 仅在新架构中可用

等同于 rightleft

详情请参阅 MDN CSS 参考

类型必需
number, string

insetInlineEnd

备注

insetInlineEnd 仅在新架构中可用

当方向为 ltr 时,insetInlineEnd 等同于 right;当方向为 rtl 时,等同于 left

详情请参阅 MDN CSS 参考

类型必需
number, string

insetInlineStart

备注

insetInlineStart 仅在新架构中可用

当方向为 ltr 时,insetInlineStart 等同于 left;当方向为 rtl 时,等同于 right

详情请参阅 MDN CSS 参考

类型必需
number, string

isolation

备注

isolation 仅在新架构中可用

isolation 允许你创建堆叠上下文

有两个值:

  • auto(默认):无效果。
  • isolate:创建堆叠上下文。
类型必需
枚举('auto', 'isolate')

justifyContent

justifyContent 控制子元素在主轴方向的对齐方式。例如,如果子元素垂直排列,justifyContent 控制它们在垂直方向上的对齐。它的行为类似于 CSS 中的 justify-content(默认值:flex-start)。

详情请参阅 MDN CSS 参考

类型必需
枚举('flex-start', 'flex-end', 'center', 'space-between', 'space-around', 'space-evenly')

left

left 是组件左边缘的逻辑像素偏移量。

它的用法类似于 CSS 中的 left,但在 React Native 中必须使用点数或百分比,不支持 em 等其他单位。

详情请参阅 MDN CSS 参考 了解 left 如何影响布局。

类型必需
number, string

margin

设置 margin 等同于分别设置 marginTopmarginLeftmarginBottommarginRight

详情请参阅 MDN CSS 参考

类型必需
number, string

marginBottom

marginBottom 类似于 CSS 中的 margin-bottom。详情见 MDN CSS 参考

类型必需
number, string

marginBlock

等同于 marginVertical

详情见 MDN CSS 参考

类型必需
number, string

marginBlockEnd

等同于 marginBottom

详情见 MDN CSS 参考

类型必需
number, string

marginBlockStart

等同于 marginTop

详情见 MDN CSS 参考

类型必需
number, string

marginEnd

当方向为 ltr 时,marginEnd 等同于 marginRight;当方向为 rtl 时,等同于 marginLeft

类型必需
number, string

marginHorizontal

设置 marginHorizontal 等同于同时设置 marginLeftmarginRight

类型必需
number, string

marginInline

等同于 marginHorizontal

详情见 MDN CSS 参考

类型必需
number, string

marginInlineEnd

当方向为 ltr 时,marginInlineEnd 等同于 marginEnd(即 marginRight);当方向为 rtl 时,等同于 marginEnd(即 marginLeft)。

详情见 MDN CSS 参考

类型必需
number, string

marginInlineStart

当方向为 ltr 时,marginInlineStart 等同于 marginStart(即 marginLeft);当方向为 rtl 时,等同于 marginStart(即 marginRight)。

详情见 MDN CSS 参考

类型必需
number, string

marginLeft

marginLeft 类似于 CSS 中的 margin-left。详情见 MDN CSS 参考

类型必需
number, string

marginRight

marginRight 类似于 CSS 中的 margin-right

详情见 MDN CSS 参考

类型必需
number, string

marginStart

当方向为 ltr 时,marginStart 等同于 marginLeft;当方向为 rtl 时,等同于 marginRight

类型必需
number, string

marginTop

marginTop 类似于 CSS 中的 margin-top

详情见 MDN CSS 参考

类型必需
number, string

marginVertical

设置 marginVertical 等同于同时设置 marginTopmarginBottom

类型必需
number, string

maxHeight

maxHeight 是组件的最大高度,单位为逻辑像素。

类似于 CSS 中的 max-height,但在 React Native 中必须使用点数或百分比,不支持 em 等其他单位。

详情见 MDN CSS 参考

类型必需
number, string

maxWidth

maxWidth 是组件的最大宽度,单位为逻辑像素。

类似于 CSS 中的 max-width,但在 React Native 中必须使用点数或百分比,不支持 em 等其他单位。

详情见 MDN CSS 参考

类型必需
number, string

minHeight

minHeight 是组件的最小高度,单位为逻辑像素。

类似于 CSS 中的 min-height,但在 React Native 中必须使用点数或百分比,不支持 em 等其他单位。

详情见 MDN CSS 参考

类型必需
number, string

minWidth

minWidth 是组件的最小宽度,单位为逻辑像素。

类似于 CSS 中的 min-width,但在 React Native 中必须使用点数或百分比,不支持 em 等其他单位。

详情见 MDN CSS 参考

类型必需
number, string

overflow

overflow 控制子元素如何被测量和显示。overflow: hidden 会裁剪视图,而 overflow: scroll 使视图的测量独立于父容器的主轴。它的行为类似于 CSS 中的 overflow(默认值:visible)。

详情见 MDN CSS 参考

类型必需
枚举('visible', 'hidden', 'scroll')

padding

设置 padding 等同于分别设置 paddingToppaddingBottompaddingLeftpaddingRight

详情见 MDN CSS 参考

类型必需
number, string

paddingBottom

paddingBottom 类似于 CSS 中的 padding-bottom

详情见 MDN CSS 参考

类型必需
number, string

paddingBlock

等同于 paddingVertical

详情见 MDN CSS 参考

类型必需
number, string

paddingBlockEnd

等同于 paddingBottom

详情见 MDN CSS 参考

类型必需
number, string

paddingBlockStart

等同于 paddingTop

详情见 MDN CSS 参考

类型必需
number, string

paddingEnd

当方向为 ltr 时,paddingEnd 等同于 paddingRight;当方向为 rtl 时,等同于 paddingLeft

类型必需
number, string

paddingHorizontal

设置 paddingHorizontal 等同于同时设置 paddingLeftpaddingRight

类型必需
number, string

paddingInline

等同于 paddingHorizontal

详情见 MDN CSS 参考

类型必需
number, string

paddingInlineEnd

当方向为 ltr 时,paddingInlineEnd 等同于 paddingEnd(即 paddingRight);当方向为 rtl 时,等同于 paddingEnd(即 paddingLeft)。

详情见 MDN CSS 参考

类型必需
number, string

paddingInlineStart

当方向为 ltr 时,paddingInlineStart 等同于 paddingStart(即 paddingLeft);当方向为 rtl 时,等同于 paddingStart(即 paddingRight)。

详情见 MDN CSS 参考

类型必需
number, string

paddingLeft

paddingLeft 类似于 CSS 中的 padding-left

详情见 MDN CSS 参考

类型必需
number, string

paddingRight

paddingRight 类似于 CSS 中的 padding-right

详情见 MDN CSS 参考

类型必需
number, string

paddingStart

当方向为 ltr 时,paddingStart 等同于 paddingLeft;当方向为 rtl 时,等同于 paddingRight

类型必需
number, string

paddingTop

paddingTop 类似于 CSS 中的 padding-top

详情见 MDN CSS 参考

类型必需
number, string

paddingVertical

设置 paddingVertical 等同于同时设置 paddingToppaddingBottom

类型必需
number, string

position

React Native 中的 position 类似于 标准 CSS,但默认值都是 relative

  • relative 会使元素依据正常布局流定位。内边距(topbottomleftright)相对该布局进行偏移。
  • absolute 会使元素脱离正常布局流。内边距相对其包含块偏移。
  • static 会让元素按照正常布局流定位。内边距无效。static 元素不会为 absolute 子孙元素形成包含块。

更多信息请见 基于 Flexbox 的布局文档,以及 Yoga 文档 了解 React Native 与 CSS 中 position 的区别。

类型必需
枚举('absolute', 'relative', 'static')

right 是组件右边缘的逻辑像素偏移量。

它的用法类似于 CSS 中的 right,但在 React Native 中必须使用点数或百分比,不支持 em 等其他单位。

详情请参阅 MDN CSS 参考 了解 right 如何影响布局。

类型必需
number, string

rowGap

rowGap 类似于 CSS 中的 row-gap。React Native 中仅支持像素单位。

详情请参阅 MDN CSS 参考

类型必需
number

start

当方向为 ltr 时,start 等同于 left;当方向为 rtl 时,等同于 right

此样式优先于 leftrightend

类型必需
number, string

top

top 是组件顶部边缘的逻辑像素偏移量。

它的用法类似于 CSS 中的 top,但在 React Native 中必须使用点数或百分比,不支持 em 等其他单位。

详情请参阅 MDN CSS 参考 了解 top 如何影响布局。

类型必需
number, string

width

width 设置组件宽度。

类似于 CSS 的 width,但在 React Native 中必须使用点数或百分比,不支持 em 等其他单位。

详情请参阅 MDN CSS 参考

类型必需
number, string

zIndex

zIndex 控制组件的显示层级。通常不需要使用 zIndex,组件按文档树顺序渲染,后渲染的覆盖先渲染的。zIndex 在动画或自定义模态界面中有用,以打破默认渲染顺序。

它的行为类似 CSS 的 z-index,较大值的组件会渲染在上面。可以把 z 轴方向想象成从手机屏幕指向你的眼睛。

在 iOS 上,zIndex 可能需要组件是彼此的兄弟元素才能正常工作。

详情见 MDN CSS 参考

类型必需
number