跳到主要内容

布局属性

信息

有关这些属性的更详细示例,请参阅 Flexbox 布局页面。

示例

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


参考

属性

alignContent

alignContent 控制行在交叉方向上的对齐方式,会覆盖父级的 alignContent。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/align-content

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

alignItems

alignItems 在交叉方向上对齐子项。例如,如果子项是垂直流动的,alignItems 将控制它们的水平对齐方式。它类似于 CSS 中的 align-items(默认值:stretch)。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/align-items

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

alignSelf

alignSelf 控制子项在交叉方向上的对齐方式,会覆盖父级的 alignItems。它类似于 CSS 中的 align-self(默认值:auto)。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/align-self

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

aspectRatio

纵横比控制节点未定义尺寸的大小。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/aspect-ratio

  • 在具有设置宽度/高度的节点上,纵横比控制未设置尺寸的大小。
  • 在具有设置 flex basis 的节点上,纵横比控制节点在交叉轴上的大小(如果未设置)。
  • 在具有测量函数的节点上,纵横比的作用就像测量函数测量 flex basis 一样。
  • 在具有 flex grow/shrink 的节点上,纵横比控制节点在交叉轴上的大小(如果未设置)。
  • 纵横比会考虑最小/最大尺寸。
类型必需
number, string

borderBottomWidth

borderBottomWidth 类似于 CSS 中的 border-bottom-width。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/border-bottom-width

类型必需
数字

borderEndWidth

当 direction 为 ltr 时,borderEndWidth 等同于 borderRightWidth。当 direction 为 rtl 时,borderEndWidth 等同于 borderLeftWidth

类型必需
数字

borderLeftWidth

borderLeftWidth 类似于 CSS 中的 border-left-width。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/border-left-width

类型必需
数字

borderRightWidth

borderRightWidth 类似于 CSS 中的 border-right-width。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/border-right-width

类型必需
数字

borderStartWidth

当 direction 为 ltr 时,borderStartWidth 等同于 borderLeftWidth。当 direction 为 rtl 时,borderStartWidth 等同于 borderRightWidth

类型必需
数字

borderTopWidth

borderTopWidth 类似于 CSS 中的 border-top-width。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/border-top-width

类型必需
数字

borderWidth

borderWidth 类似于 CSS 中的 border-width。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/border-width

类型必需
数字

bottom

bottom 是该组件下边缘的逻辑像素偏移量。

它的工作方式类似于 CSS 中的 bottom,但在 React Native 中,您必须使用点或百分比。不支持 ems 和其他单位。

有关 bottom 如何影响布局的更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/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 中只支持像素单位。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/column-gap

类型必需
数字

direction

direction 指定用户界面的方向流。默认值为 inherit,根节点的值除外,它将基于当前语言环境。有关更多详细信息,请参阅 https://www.yogalayout.dev/docs/styling/layout-direction

类型必需Platform
enum('inherit', 'ltr', 'rtl')iOS

display

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

它的工作方式类似于 CSS 中的 display,但仅支持 'flex'、'none' 和 'contents' 值。默认值为 flex

类型必需
enum('none', 'flex', 'contents')

end

当 direction 为 ltr 时,end 等同于 right。当 direction 为 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

flex 为 0 时,组件根据 widthheight 进行缩放,并且是不可伸缩的。

flex 为 -1 时,组件通常根据 widthheight 进行缩放。但是,如果没有足够的空间,组件将收缩到其 minWidthminHeight

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

类型必需
数字

flexBasis

flexBasis 是一种独立于轴的方式,用于提供项在主轴上的默认大小。设置子项的 flexBasis 类似于设置子项的 width(如果其父容器是具有 flexDirection: row 的容器)或设置子项的 height(如果其父容器是具有 flexDirection: column 的容器)。项的 flexBasis 是该项的默认大小,即在进行任何 flexGrowflexShrink 计算之前的项的大小。

类型必需
number, string

flexDirection

flexDirection 控制容器中子项的排列方向。row 是从左到右,column 是从上到下,您可能可以猜到另外两个的作用。它类似于 CSS 中的 flex-direction,但默认值是 column。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/flex-direction

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

flexGrow

flexGrow 描述了容器内的任何空间应如何在主轴上根据子项进行分配。在布局其子项后,容器将根据其子项指定的 flex grow 值分配任何剩余空间。

flexGrow 接受任何浮点值 >= 0,其中 0 是默认值。容器将根据子项的 flexGrow 值按权重分配任何剩余空间给其子项。

类型必需
数字

flexShrink

flexShrink 描述了在子项的总大小溢出容器在主轴上的大小时,如何在主轴上缩小子项。flexShrinkflexGrow 非常相似,如果将任何溢出大小视为负的剩余空间,则可以以相同的方式进行思考。这两个属性结合使用效果很好,可以使子项根据需要进行增长和收缩。

flexShrink 接受任何浮点值 >= 0,其中 0 是默认值。容器将根据子项的 flexShrink 值按权重缩小其子项。

类型必需
数字

flexWrap

flexWrap 控制子项在达到 flex 容器的末端后是否可以换行。它类似于 CSS 中的 flex-wrap(默认值:nowrap)。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/flex-wrap。注意,它不再与 alignItems: stretch(默认值)一起使用,因此您可能希望使用 alignItems: flex-start(例如,破坏性更改详情:https://github.com/facebook/react-native/releases/tag/v0.28.0)。

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

gap

gap 类似于 CSS 中的 gap。React Native 中只支持像素单位。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/gap

类型必需
数字

height

height 设置此组件的高度。

它的工作方式类似于 CSS 中的 height,但在 React Native 中,您必须使用点或百分比。不支持 ems 和其他单位。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/height

类型必需
number, string

isolation

isolation 允许您形成一个堆叠上下文。此属性仅在新架构中可用。

有两个值

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

justifyContent

justifyContent 在主方向上对齐子项。例如,如果子项是垂直流动的,justifyContent 将控制它们的垂直对齐方式。它类似于 CSS 中的 justify-content(默认值:flex-start)。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/justify-content

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

left

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

它的工作方式类似于 CSS 中的 left,但在 React Native 中,您必须使用点或百分比。不支持 ems 和其他单位。

有关 left 如何影响布局的更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/left

类型必需
number, string

margin

设置 margin 与分别设置 marginTopmarginLeftmarginBottommarginRight 效果相同。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/margin

类型必需
number, string

marginBottom

marginBottom 类似于 CSS 中的 margin-bottom。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/margin-bottom

类型必需
number, string

marginEnd

当 direction 为 ltr 时,marginEnd 等同于 marginRight。当 direction 为 rtl 时,marginEnd 等同于 marginLeft

类型必需
number, string

marginHorizontal

设置 marginHorizontal 与同时设置 marginLeftmarginRight 效果相同。

类型必需
number, string

marginLeft

marginLeft 类似于 CSS 中的 margin-left。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/margin-left

类型必需
number, string

marginRight

marginRight 类似于 CSS 中的 margin-right。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/margin-right

类型必需
number, string

marginStart

当 direction 为 ltr 时,marginStart 等同于 marginLeft。当 direction 为 rtl 时,marginStart 等同于 marginRight

类型必需
number, string

marginTop

marginTop 类似于 CSS 中的 margin-top。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/margin-top

类型必需
number, string

marginVertical

设置 marginVertical 与同时设置 marginTopmarginBottom 效果相同。

类型必需
number, string

maxHeight

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

它的工作方式类似于 CSS 中的 max-height,但在 React Native 中,您必须使用点或百分比。不支持 ems 和其他单位。

有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/max-height

类型必需
number, string

maxWidth

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

它的工作方式类似于 CSS 中的 max-width,但在 React Native 中,您必须使用点或百分比。不支持 ems 和其他单位。

有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/max-width

类型必需
number, string

minHeight

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

它的工作方式类似于 CSS 中的 min-height,但在 React Native 中,您必须使用点或百分比。不支持 ems 和其他单位。

有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/min-height

类型必需
number, string

minWidth

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

它的工作方式类似于 CSS 中的 min-width,但在 React Native 中,您必须使用点或百分比。不支持 ems 和其他单位。

有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/min-width

类型必需
number, string

overflow

overflow 控制子项如何被测量和显示。overflow: hidden 会导致视图被裁剪,而 overflow: scroll 会导致视图独立于其父项的主轴进行测量。它类似于 CSS 中的 overflow(默认值:visible)。有关更多详细信息,请参阅 https://mdn.org.cn/en/docs/Web/CSS/overflow

类型必需
enum('visible', 'hidden', 'scroll')

padding

设置 padding 与分别设置 paddingToppaddingBottompaddingLeftpaddingRight 效果相同。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/padding

类型必需
number, string

paddingBottom

paddingBottom 类似于 CSS 中的 padding-bottom。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/padding-bottom

类型必需
number, string

paddingEnd

当 direction 为 ltr 时,paddingEnd 等同于 paddingRight。当 direction 为 rtl 时,paddingEnd 等同于 paddingLeft

类型必需
number, string

paddingHorizontal

设置 paddingHorizontal 与同时设置 paddingLeftpaddingRight 效果相同。

类型必需
number, string

paddingLeft

paddingLeft 类似于 CSS 中的 padding-left。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/padding-left

类型必需
number, string

paddingRight

paddingRight 类似于 CSS 中的 padding-right。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/padding-right

类型必需
number, string

paddingStart

当 direction 为 ltr 时,paddingStart 等同于 paddingLeft。当 direction 为 rtl 时,paddingStart 等同于 paddingRight

类型必需
number, string

paddingTop

paddingTop 类似于 CSS 中的 padding-top。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/padding-top

类型必需
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 中,您必须使用点或百分比。不支持 ems 和其他单位。

有关 right 如何影响布局的更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/right

类型必需
number, string

rowGap

rowGap 类似于 CSS 中的 row-gap。React Native 中只支持像素单位。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/row-gap

类型必需
数字

start

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

此样式优先于 leftrightend 样式。

类型必需
number, string

top

top 是该组件上边缘的逻辑像素偏移量。

它的工作方式类似于 CSS 中的 top,但在 React Native 中,您必须使用点或百分比。不支持 ems 和其他单位。

有关 top 如何影响布局的更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/top

类型必需
number, string

width

width 设置此组件的宽度。

它的工作方式类似于 CSS 中的 width,但在 React Native 中,您必须使用点或百分比。不支持 ems 和其他单位。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/width

类型必需
number, string

zIndex

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

它的工作方式类似于 CSS 的 z-index 属性——zIndex 值越大的组件将渲染在最上面。将 z 方向想象成是从手机指向您的眼球。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/z-index

在 iOS 上,zIndex 可能需要 View 元素是彼此的同级元素才能按预期工作。

类型必需
数字