跳至主要内容

布局属性

有关这些属性的更详细示例,请参阅 使用 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

  • 对于设置了宽度/高度的节点,纵横比控制未设置维度的尺寸
  • 对于设置了弹性基准线的节点,如果未设置交叉轴的尺寸,则纵横比控制节点的尺寸
  • 对于具有测量函数的节点,纵横比的工作方式就像测量函数测量弹性基准线一样
  • 对于具有弹性增长/收缩的节点,如果未设置交叉轴的尺寸,则纵横比控制节点的尺寸
  • 纵横比考虑最小/最大尺寸
类型必填
number,string

borderBottomWidth

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

类型必填
number

borderEndWidth

当方向为 ltr 时,borderEndWidth 等效于 borderRightWidth。当方向为 rtl 时,borderEndWidth 等效于 borderLeftWidth

类型必填
number

borderLeftWidth

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

类型必填
number

borderRightWidth

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

类型必填
number

borderStartWidth

当方向为 ltr 时,borderStartWidth 等效于 borderLeftWidth。当方向为 rtl 时,borderStartWidth 等效于 borderRightWidth

类型必填
number

borderTopWidth

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

类型必填
number

borderWidth

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

类型必填
number

bottom

bottom 是此组件底部边缘的偏移量,以逻辑像素为单位。

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

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

类型必填
number,string

columnGap

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

类型必填
number

direction

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

类型必填平台
enum('inherit', 'ltr', 'rtl')iOS

display

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

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

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

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 确定。但是,如果没有足够的空间,组件将缩小到其 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。有关更多详细信息,请参阅 https://mdn.org.cn/en-US/docs/Web/CSS/flex-direction

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

flexGrow

flexGrow 描述了容器内的任何空间应如何在主轴上分配给其子元素。在布置其子元素后,容器将根据其子元素指定的弹性增长值分配任何剩余空间。

flexGrow 接受任何浮点值 >= 0,默认值为 0。容器将根据子元素的 flexGrow 值对任何剩余空间进行加权分配。

类型必填
number

flexShrink

flexShrink 描述了在子元素的总大小在主轴上溢出容器大小时如何沿主轴收缩子元素。flexShrinkflexGrow 非常相似,如果任何溢出大小被视为负剩余空间,则可以以相同的方式考虑。这两个属性还可以很好地协同工作,允许子元素根据需要增长和收缩。

flexShrink 接受任何浮点值 >= 0,默认值为 0。容器将根据子元素的 flexShrink 值对子元素进行加权收缩。

类型必填
number

flexWrap

flexWrap 控制子元素在到达弹性容器末端后是否可以换行。它的工作方式与 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

类型必填
number

height

height 设置此组件的高度。

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

类型必填
number,string

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

有关 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

当方向为 ltr 时,marginEnd 等效于 marginRight。当方向为 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

当方向为 ltr 时,marginStart 等效于 marginLeft。当方向为 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 中,您必须使用点或百分比。不支持 em 等其他单位。

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

类型必填
number,string

maxWidth

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

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

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

类型必填
number,string

minHeight

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

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

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

类型必填
number,string

minWidth

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

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

有关更多详细信息,请参阅 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

当方向为 ltr 时,paddingEnd 等效于 paddingRight。当方向为 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

当方向为 ltr 时,paddingStart 等效于 paddingLeft。当方向为 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 中,您必须使用点或百分比。不支持 em 等其他单位。

有关 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

类型必填
number

start

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

此样式优先于 leftrightend 样式。

类型必填
number,string

top

top 是此组件顶部边缘的偏移量,以逻辑像素为单位。

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

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

类型必填
number,string

width

width 设置此组件的宽度。

它的工作原理类似于 CSS 中的 width,但在 React Native 中,您必须使用点或百分比。不支持 em 等其他单位。有关更多详细信息,请参阅 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 彼此为兄弟组件才能按预期工作。

类型必填
number