跳到主要内容
版本:0.80

布局属性

信息

关于这些属性的更详细示例可以在 使用 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 中你必须使用点数或百分比。不支持 Em 和其他单位。

请参阅 MDN CSS 参考 了解更多关于 bottom 如何影响布局的详情。

类型是否必填
number, string

boxSizing

boxSizing 定义如何计算元素的各种尺寸属性(widthheightminWidthminHeight 等)。如果 boxSizingborder-box,这些尺寸适用于元素的边框盒。如果为 content-box,它们适用于元素的内容盒。默认值为 border-box。如果你想了解更多关于此属性如何工作的信息,web 文档 是一个很好的信息来源。

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

columnGap

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

请参阅 MDN CSS 参考 了解更多详情。

类型是否必填
number

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

此样式的优先级高于 leftright 样式。

类型是否必填
number, string

flex

在 React Native 中,flex 的工作方式与 CSS 中的不完全相同。flex 是一个数字而不是字符串,它根据 Yoga 布局引擎工作。

flex 为正数时,它使组件具有灵活性,并且其大小将与其 flex 值成比例。因此,flex 设置为 2 的组件将占据 flex 设置为 1 的组件两倍的空間。flex: <positive number> 等同于 flexGrow: <positive number>, flexShrink: 1, flexBasis: 0

flex0 时,组件根据 widthheight 调整大小,并且它是不可灵活的。

flex-1 时,组件通常根据 widthheight 调整大小。但是,如果没有足够的空间,组件将缩小到其 minWidthminHeight

flexGrowflexShrinkflexBasis 的工作方式与 CSS 中相同。

类型是否必填
number

flexBasis

flexBasis 是一种与轴无关的方式,用于提供项目沿主轴的默认大小。设置子元素的 flexBasis 类似于设置该子元素的 width(如果其父级是带有 flexDirection: row 的容器),或者设置子元素的 height(如果其父级是带有 flexDirection: column 的容器)。项目的 flexBasis 是该项目的默认大小,即在执行任何 flexGrowflexShrink 计算之前的大小。

类型是否必填
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 描述在子元素的总大小溢出容器主轴大小的情况下,如何沿主轴缩小子元素。flexShrinkflexGrow 非常相似,如果任何溢出大小被视为负剩余空间,则可以以相同的方式思考。这两个属性也可以很好地配合使用,允许子元素根据需要增长和缩小。

flexShrink 接受任何 >= 0 的浮点值,默认值为 0。容器将缩小子元素,权重由子元素的 flexShrink 值决定。

类型是否必填
number

flexWrap

flexWrap 控制子元素在碰到弹性容器末端后是否可以换行。它的工作方式类似于 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 的工作方式类似于 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 时,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 中你必须使用点数或百分比。不支持 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 时,marginEnd 等同于 marginLeft

类型是否必填
number, string

marginHorizontal

设置 marginHorizontal 具有与同时设置 marginLeftmarginRight 相同的效果。

类型是否必填
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 具有与同时设置 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 参考 了解更多详情。

类型是否必填
enum('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 时,paddingEnd 等同于 paddingLeft

类型是否必填
number, string

paddingHorizontal

设置 paddingHorizontal 就像同时设置 paddingLeftpaddingRight

类型是否必填
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 就像同时设置 paddingToppaddingBottom

类型是否必填
number, string

position

React Native 中的 position 类似于 常规 CSS,但所有内容默认设置为 relative

relative 将根据布局的正常流定位元素。插入值(topbottomleftright)将相对于此布局进行偏移。

absolute 将元素从布局的正常流中取出。插入值将相对于其 包含块 进行偏移。

static 将根据布局的正常流定位元素。插入值将不起作用。 static 元素不会为绝对定位的后代形成包含块。

有关更多信息,请参阅 使用 Flexbox 布局文档。此外,Yoga 文档 有关於 position 在 React Native 和 CSS 之间如何不同的更多详情。

类型是否必填
enum('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 时,start 等同于 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 属性 - 具有较大 zIndex 的组件将渲染在顶部。想象 z 轴方向就像是从手机指向你的眼球。

在 iOS 上,zIndex 可能需要 View 互为兄弟元素才能按预期工作。

请参阅 MDN CSS 参考 了解更多详情。

类型是否必填
number