跳到主要内容
版本:0.85

布局属性

信息

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

示例​

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


参考

属性​

alignContent​

alignContent 控制行在交叉方向上的对齐方式,会覆盖父级的 alignContent。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
enum('flex-start', 'flex-end', 'center', 'stretch', 'space-between', 'space-around', 'space-evenly')否

alignItems​

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

有关更多细节,请参阅 MDN CSS 参考。

类型必填
enum('flex-start', 'flex-end', 'center', 'stretch', 'baseline')否

alignSelf​

alignSelf 控制子元素在交叉方向上的对齐方式,会覆盖父级的 alignItems。它的作用类似于 CSS 中的 align-self(默认值:auto)。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
enum('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 中你必须使用 point 或百分比。Ems 和其他单位不受支持。

有关 bottom 如何影响布局的更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

boxSizing​

boxSizing 定义元素的各种尺寸属性(width、height、minWidth、minHeight 等)如何计算。如果 boxSizing 是 border-box,这些尺寸会应用于元素的边框盒。如果它是 content-box,这些尺寸会应用于元素的内容盒。默认值是 border-box。如果你想进一步了解这个属性的工作方式,Web 文档是很好的信息来源。

类型必填
enum('border-box', 'content-box')否

columnGap​

columnGap works like column-gap in CSS. It accepts numbers (in points) or percentage strings (e.g. '10%'). Percentage values are supported on the New Architecture.

有关更多细节,请参阅 MDN CSS 参考。

类型必需
number, string否

direction​

direction 指定用户界面的方向流。默认值是 inherit,但根节点除外,根节点的值会基于当前区域设置。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
enum('inherit', 'ltr', 'rtl')否

display​

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

它的作用类似于 CSS 中的 display,但只支持 'flex'、'none' 和 'contents'。默认值是 flex。

类型必填
enum('none', 'flex', 'contents')否

end​

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

此样式优先于 left 和 right 样式。

类型必填
number, string否

flex​

在 React Native 中,flex 的工作方式与 CSS 不同。flex 是数字而不是字符串,并且它按照 Yoga 布局引擎的规则工作。

当 flex 是正数时,它会使组件具有弹性,并按其 flex 值的比例进行尺寸分配。因此,flex 设置为 2 的组件会占据 flex 设置为 1 的组件两倍的空间。flex: <正数> 等同于 flexGrow: <正数>, flexShrink: 1, flexBasis: 0。

当 flex 为 0 时,组件会根据 width 和 height 定尺寸,并且是不可伸缩的。

当 flex 为 -1 时,组件通常会根据 width 和 height 定尺寸。但是,如果空间不足,组件会收缩到其 minWidth 和 minHeight。

flexGrow、flexShrink 和 flexBasis 的作用与 CSS 中相同。

类型必填
number否

flexBasis​

flexBasis 是一种与轴无关的方式,用于提供项目沿主轴的默认尺寸。为子元素设置 flexBasis,类似于在其父元素是 flexDirection: row 的容器时设置该子元素的 width,或者在其父元素是 flexDirection: column 的容器时设置该子元素的 height。项目的 flexBasis 是该项目的默认尺寸,也就是在执行任何 flexGrow 和 flexShrink 计算之前的尺寸。

类型必填
number, string否

flexDirection​

flexDirection 控制容器子元素的排列方向。row 表示从左到右,column 表示从上到下,另外两个的含义你大概也能猜到。它的作用类似于 CSS 中的 flex-direction,只是默认值是 column。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
enum('row', 'row-reverse', 'column', 'column-reverse')否

flexGrow​

flexGrow 描述容器中的任何空间应如何在主轴上分配给其子元素。在布局完子元素后,容器会根据子元素指定的 flex grow 值分配剩余空间。

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 参考。

类型必填
enum('wrap', 'nowrap', 'wrap-reverse')否

gap​

gap works like gap in CSS. It is a shorthand for rowGap and columnGap. It accepts numbers (in points) or percentage strings (e.g. '10%'). Percentage values are supported on the New Architecture.

有关更多细节,请参阅 MDN CSS 参考。

类型必需
number, string否

height​

height 设置该组件的高度。

它的作用类似于 CSS 中的 height,但在 React Native 中你必须使用 point 或百分比。Ems 和其他单位不受支持。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

inset​

备注

inset 仅在 新架构 中可用

设置 inset 的效果与分别设置 top、bottom、right 和 left 属性相同。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

insetBlock​

备注

insetBlock 仅在 新架构 中可用

等同于 top 和 bottom。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

insetBlockEnd​

备注

insetBlockEnd 仅在 新架构 中可用

等同于 bottom。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

insetBlockStart​

备注

insetBlockStart 仅在 新架构 中可用

等同于 top。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

insetInline​

备注

insetInline 仅在 新架构 中可用

等同于 right 和 left。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

insetInlineEnd​

备注

insetInlineEnd 仅在 新架构 中可用

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

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

insetInlineStart​

备注

insetInlineStart 仅在 新架构 中可用

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

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

isolation​

备注

isolation 仅在 新架构 中可用

isolation 允许你形成一个 堆叠上下文。

有两个值:

  • auto(默认):不执行任何操作。
  • isolate:形成一个堆叠上下文。
类型必填
enum('auto', 'isolate')否

justifyContent​

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

有关更多细节,请参阅 MDN CSS 参考。

类型必填
enum('flex-start', 'flex-end', 'center', 'space-between', 'space-around', 'space-evenly')否

left​

left 是用于偏移该组件左边缘的逻辑像素数。

它的作用类似于 CSS 中的 left,但在 React Native 中你必须使用 point 或百分比。Ems 和其他单位不受支持。

有关 left 如何影响布局的更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

margin​

设置 margin 的效果与分别设置 marginTop、marginLeft、marginBottom 和 marginRight 相同。

有关更多细节,请参阅 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 时,marginEnd 等同于 marginLeft。

类型必填
number, string否

marginHorizontal​

设置 marginHorizontal 的效果与同时设置 marginLeft 和 marginRight 相同。

类型必填
number, string否

marginInline​

等同于 marginHorizontal。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

marginInlineEnd​

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

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

marginInlineStart​

当方向为 ltr 时,marginInlineStart 等同于 marginStart(即 marginLeft)。当方向为 rtl 时,marginInlineStart 等同于 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 时,marginStart 等同于 marginRight。

类型必填
number, string否

marginTop​

marginTop 的作用类似于 CSS 中的 margin-top。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

marginVertical​

设置 marginVertical 的效果与同时设置 marginTop 和 marginBottom 相同。

类型必填
number, string否

maxHeight​

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

它的作用类似于 CSS 中的 max-height,但在 React Native 中你必须使用 point 或百分比。Ems 和其他单位不受支持。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

maxWidth​

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

它的作用类似于 CSS 中的 max-width,但在 React Native 中你必须使用 point 或百分比。Ems 和其他单位不受支持。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

minHeight​

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

它的作用类似于 CSS 中的 min-height,但在 React Native 中你必须使用 point 或百分比。Ems 和其他单位不受支持。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

minWidth​

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

它的作用类似于 CSS 中的 min-width,但在 React Native 中你必须使用 point 或百分比。Ems 和其他单位不受支持。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

overflow​

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

有关更多细节,请参阅 MDN CSS 参考。

类型必填
enum('visible', 'hidden', 'scroll')否

padding​

设置 padding 的效果与分别设置 paddingTop、paddingBottom、paddingLeft 和 paddingRight 相同。

有关更多细节,请参阅 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 时,paddingEnd 等同于 paddingLeft。

类型必填
number, string否

paddingHorizontal​

设置 paddingHorizontal 就像同时设置 paddingLeft 和 paddingRight。

类型必填
number, string否

paddingInline​

等同于 paddingHorizontal。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

paddingInlineEnd​

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

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

paddingInlineStart​

当方向为 ltr 时,paddingInlineStart 等同于 paddingStart(即 paddingLeft)。当方向为 rtl 时,paddingInlineStart 等同于 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 时,paddingStart 等同于 paddingRight。

类型必填
number, string否

paddingTop​

paddingTop 的作用类似于 CSS 中的 padding-top。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

paddingVertical​

设置 paddingVertical 就像同时设置 paddingTop 和 paddingBottom。

类型必填
number, string否

position​

React Native 中的 position 类似于 常规 CSS,但默认情况下所有元素都设置为 relative。

relative 会根据布局的正常流来定位元素。内边距(top、bottom、left、right)会相对于此布局进行偏移。

absolute 会将元素从布局的正常流中移除。内边距会相对于其 包含块 进行偏移。

static 会根据布局的正常流来定位元素。内边距不会产生任何效果。 static 元素不会为绝对定位的后代形成包含块。

更多信息请参阅 Flexbox 布局文档。另外,Yoga 文档 也提供了关于 position 在 React Native 和 CSS 之间差异的更多细节。

类型必填
enum('absolute', 'relative', 'static')否

right 是用于偏移该组件右边缘的逻辑像素数。

它的作用类似于 CSS 中的 right,但在 React Native 中你必须使用 point 或百分比。Ems 和其他单位不受支持。

有关 right 如何影响布局的更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

rowGap​

rowGap works like row-gap in CSS. It accepts numbers (in points) or percentage strings (e.g. '10%'). Percentage values are supported on the New Architecture.

有关更多细节,请参阅 MDN CSS 参考。

类型必需
number, string否

start​

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

此样式优先于 left、right 和 end 样式。

类型必填
number, string否

top​

top 是用于偏移该组件顶边的逻辑像素数。

它的作用类似于 CSS 中的 top,但在 React Native 中你必须使用 point 或百分比。Ems 和其他单位不受支持。

有关 top 如何影响布局的更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

width​

width 设置该组件的宽度。

它的作用类似于 CSS 中的 width,但在 React Native 中你必须使用 point 或百分比。Ems 和其他单位不受支持。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number, string否

zIndex​

zIndex 控制哪些组件显示在其他组件之上。通常你不需要使用 zIndex。组件会根据它们在文档树中的顺序进行渲染,因此后面的组件会覆盖前面的组件。如果你有动画或自定义模态界面且不希望出现这种行为,zIndex 可能会很有用。

它的作用类似于 CSS 的 z-index 属性——较大的 zIndex 的组件会渲染在上层。可以把 z 方向想象成从手机指向你的眼睛。

在 iOS 上,zIndex 可能要求 View 彼此成为兄弟节点才能按预期工作。

有关更多细节,请参阅 MDN CSS 参考。

类型必填
number否