Layout Props¶
Более подробные примеры этих свойств можно найти на странице Layout with Flexbox.
Пример¶
Следующий пример показывает, как различные свойства могут влиять на макет React Native. Например, можно попробовать добавить или убрать квадраты из пользовательского интерфейса, изменяя значения свойства flexWrap.
Свойства¶
alignContent¶
alignContent управляет выравниванием строк в поперечном направлении, переопределяя alignContent родителя. Подробнее см. align-content.
| Тип | Обязательный |
|---|---|
enum('flex-start', 'flex-end', 'center', 'stretch', 'space-between', 'space-around') | Нет |
alignItems¶
alignItems выравнивает дочерние элементы в поперечном направлении. Например, если дочерние элементы перетекают по вертикали, alignItems управляет тем, как они выравниваются по горизонтали. Работает подобно align-items в CSS (по умолчанию: stretch). Подробнее см. align-items.
| Тип | Обязательный |
|---|---|
enum('flex-start', 'flex-end', 'center', 'stretch', 'baseline') | Нет |
alignSelf¶
alignSelf управляет выравниванием дочернего элемента в поперечном направлении, переопределяя alignItems родительского элемента. Работает аналогично align-self в CSS (по умолчанию: auto). Подробнее см. align-self.
| Тип | Обязательный |
|---|---|
enum('auto', 'flex-start', 'flex-end', 'center', 'stretch', 'baseline') | Нет |
aspectRatio¶
Соотношение сторон управляет размером неопределенного измерения узла. Более подробная информация приведена на сайте aspect-ratio.
- Для узла с заданной шириной/высотой соотношение сторон управляет размером неопределенного измерения
- В узле с заданным базисом flex соотношение сторон контролирует размер узла по поперечной оси, если он не задан.
- В узле с функцией измерения соотношение сторон работает так, как будто функция измерения измеряет гибкую основу
- В узле с функцией flex grow/shrink соотношение сторон управляет размером узла по поперечной оси, если оно не задано.
- Соотношение сторон учитывает минимальные/максимальные размеры
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
borderBottomWidth¶
borderBottomWidth работает так же, как border-bottom-width в CSS. Подробнее см. border-bottom-width.
| Тип | Обязательный |
|---|---|
| Число | Нет |
borderEndWidth¶
Если направление равно ltr, то borderEndWidth эквивалентно borderRightWidth. Если направление rtl, то borderEndWidth эквивалентна borderLeftWidth.
| Тип | Обязательный |
|---|---|
| Число | Нет |
borderLeftWidth¶
borderLeftWidth работает так же, как border-left-width в CSS. Подробнее см. border-left-width.
| Тип | Обязательный |
|---|---|
| Число | Нет |
borderRightWidth¶
borderRightWidth работает так же, как border-right-width в CSS. Подробнее см. border-right-width.
| Тип | Обязательный |
|---|---|
| Число | Нет |
borderStartWidth¶
Если направление равно ltr, то borderStartWidth эквивалентна borderLeftWidth. Если направление rtl, то borderStartWidth эквивалентна borderRightWidth.
| Тип | Обязательный |
|---|---|
| Число | Нет |
borderTopWidth¶
borderTopWidth работает так же, как border-top-width в CSS. Подробнее см. border-top-width.
| Тип | Обязательный |
|---|---|
| Число | Нет |
borderWidth¶
borderWidth работает так же, как border-width в CSS. Подробности см. на сайте border-width.
| Тип | Обязательный |
|---|---|
| Число | Нет |
bottom¶
bottom - это количество логических пикселей для смещения нижнего края данного компонента.
Работает аналогично bottom в CSS, но в React Native необходимо использовать точки или проценты. Эмы и другие единицы измерения не поддерживаются.
Подробнее о том, как bottom влияет на верстку, см. bottom.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
columnGap¶
columnGap работает аналогично column-gap в CSS. В React Native поддерживаются только пиксельные единицы измерения. Подробнее см. column-gap.
| Тип | Обязательный |
|---|---|
| Число | Нет |
direction¶
direction задает направленность потока пользовательского интерфейса. По умолчанию используется inherit, за исключением корневого узла, который будет иметь значение, основанное на текущей локали.
Направление раскладки задает направление, в котором должны располагаться дочерние элементы и текст в иерархии. Направление компоновки также влияет на то, к какому краю относятся start и end. По умолчанию Yoga выстраивается с направлением раскладки LTR. В этом режиме start ссылается на left, а end - на right. При локализации приложений для рынков с языками RTL необходимо настроить этот режим, передав направление в вызов CalculateLayout или задав направление в корневом узле.
ltr(По-умолчанию)- Текст и дочерние элементы размещаются слева направо. Отступы и поля, применяемые к началу элемента, применяются с левой стороны.
rtl- Текст и дочерние элементы располагаются справа налево. Отступы и поля, наложенные на начало элемента, применяются с правой стороны.
| Тип | Обязательный | Платформа |
|---|---|---|
enum('inherit', 'ltr', 'rtl') | Нет | iOS |
display¶
display задает тип отображения данного компонента.
Он работает аналогично display в CSS, но поддерживает только 'flex' и 'none'. По умолчанию используется 'flex'.
| Тип | Обязательный |
|---|---|
enum('none', 'flex') | Нет |
end¶
Когда направление равно ltr, end эквивалентно right. Когда направление равно rtl, end эквивалентен left.
Этот стиль имеет приоритет над стилями left и right.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
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.
| Тип | Обязательный |
|---|---|
| Число | Нет |
flexBasis¶
flexBasis - это независимый от оси способ задать размер элемента по умолчанию вдоль главной оси. Установка flexBasis дочернего элемента аналогична установке ширины этого элемента, если его родитель является контейнером с flexDirection: row, или установке высоты дочернего элемента, если его родитель является контейнером с flexDirection: column. Значение flexBasis элемента - это размер элемента по умолчанию, размер элемента до выполнения любых вычислений flexGrow и flexShrink.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
flexDirection¶
flexDirection управляет тем, в каких направлениях движутся дочерние элементы контейнера. row идет слева направо, column - сверху вниз, и вы, возможно, догадываетесь, что делают два других. Это работает так же, как flex-direction в CSS, только по умолчанию используется column. Подробнее см. flex-direction.
| Тип | Обязательный |
|---|---|
enum('row', 'row-reverse', 'column', 'column-reverse') | Нет |
flexGrow¶
Функция flexGrow описывает, как пространство внутри контейнера должно быть распределено между его дочерними элементами вдоль главной оси. После размещения своих дочерних элементов контейнер распределяет оставшееся пространство в соответствии со значениями flex grow, указанными его дочерними элементами.
flexGrow принимает любое значение с плавающей точкой >= 0, по умолчанию используется значение 0. Контейнер будет распределять оставшееся пространство между своими дочерними элементами с учетом значений flexGrow дочерних элементов.
| Тип | Обязательный |
|---|---|
| Число | Нет |
flexShrink¶
flexShrink описывает, как уменьшать дочерние элементы вдоль главной оси в случае, когда суммарный размер дочерних элементов превышает размер контейнера на главной оси. Свойство flexShrink очень похоже на flexGrow и может рассматриваться аналогичным образом, если любой переполненный размер рассматривается как отрицательное оставшееся пространство. Эти два свойства также хорошо работают вместе, позволяя дочерним элементам увеличиваться и уменьшаться по мере необходимости.
flexShrink принимает любое значение с плавающей точкой >= 0, причем по умолчанию используется значение 0. Контейнер будет сжимать своих дочерних элементов, взвешивая значения flexShrink дочерних элементов.
| Тип | Требуется |
|---|---|
| Число | Нет |
flexWrap¶
flexWrap управляет тем, могут ли дочерние элементы обернуться после того, как они попадут в конец гибкого контейнера. Работает аналогично flex-wrap в CSS (по умолчанию: nowrap). Более подробную информацию см. на сайте flex-wrap. Обратите внимание, что он больше не работает с alignItems: stretch (по умолчанию), поэтому вы можете использовать, например, alignItems: flex-start (подробности изменения).
| Тип | Обязательный |
|---|---|
enum('wrap', 'nowrap', 'wrap-reverse') | Нет |
gap¶
gap работает аналогично gap в CSS. В React Native поддерживаются только пиксельные единицы измерения. Подробнее см. gap.
| Тип | Обязательный |
|---|---|
| Число | Нет |
height¶
height задает высоту данного компонента.
Работает аналогично height в CSS, но в React Native необходимо использовать пункты или проценты. Эмы и другие единицы измерения не поддерживаются. Подробнее см. height.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
justifyContent¶
justifyContent выравнивает дочерние элементы по основному направлению. Например, если дочерние элементы перетекают по вертикали, justifyContent управляет тем, как они выравниваются по вертикали. Работает подобно justify-content в CSS (по умолчанию: flex-start). Подробнее см. justify-content.
| Тип | Обязательный |
|---|---|
enum('flex-start', 'flex-end', 'center', 'space-between', 'space-around', 'space-evenly') | Нет |
left¶
left - это количество логических пикселей для смещения левого края данного компонента.
Работает аналогично left в CSS, но в React Native необходимо использовать точки или проценты. Эмы и другие единицы измерения не поддерживаются.
Подробнее о том, как left влияет на верстку, см. left.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
margin¶
Установка margin имеет тот же эффект, что и установка каждого из marginTop, marginLeft, marginBottom и marginRight. Подробнее см. margin.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
marginBottom¶
marginBottom работает подобно margin-bottom в CSS. Подробнее см. margin-bottom.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
marginEnd¶
Если направление равно ltr, то marginEnd эквивалентно marginRight. Если направление rtl, то marginEnd эквивалентно marginLeft.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
marginHorizontal¶
Установка marginHorizontal имеет тот же эффект, что и установка marginLeft и marginRight.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
marginLeft¶
marginLeft работает подобно margin-left в CSS. Подробнее см. margin-left.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
marginRight¶
marginRight работает так же, как margin-right в CSS. Подробнее см. margin-right.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
marginStart¶
Если направление равно ltr, то marginStart эквивалентно marginLeft. Если направление rtl, то marginStart эквивалентно marginRight.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
marginTop¶
marginTop работает так же, как margin-top в CSS. Подробности см. на сайте margin-top.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
marginVertical¶
Установка marginVertical имеет тот же эффект, что и установка marginTop и marginBottom.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
maxHeight¶
maxHeight - это максимальная высота для данного компонента в логических пикселях.
Работает аналогично max-height в CSS, но в React Native необходимо использовать точки или проценты. Эмы и другие единицы измерения не поддерживаются.
Подробнее см. max-height.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
maxWidth¶
maxWidth - это максимальная ширина данного компонента в логических пикселях.
Работает аналогично max-width в CSS, но в React Native необходимо использовать точки или проценты. Эмы и другие единицы измерения не поддерживаются.
Подробнее см. max-width.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
minHeight¶
minHeight - это минимальная высота для данного компонента в логических пикселях.
Работает аналогично min-height в CSS, но в React Native необходимо использовать точки или проценты. Эмы и другие единицы измерения не поддерживаются.
Более подробную информацию см. на сайте min-height.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
minWidth¶
minWidth - это минимальная ширина данного компонента в логических пикселях.
Работает аналогично min-width в CSS, но в React Native необходимо использовать точки или проценты. Эмы и другие единицы измерения не поддерживаются.
Подробнее см. min-width.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
overflow¶
overflow управляет тем, как измеряются и отображаются дочерние элементы. overflow: hidden заставляет виды обрезаться, а overflow: scroll заставляет виды измеряться независимо от главной оси их родителей. Работает аналогично overflow в CSS (по умолчанию: visible). Подробнее см. overflow.
| Тип | Обязательный |
|---|---|
enum('visible', 'hidden', 'scroll') | Нет |
padding¶
Установка padding имеет тот же эффект, что и установка каждого из paddingTop, paddingBottom, paddingLeft и paddingRight. Подробнее см. padding.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
paddingBottom¶
paddingBottom работает подобно padding-bottom в CSS. Подробнее см. padding-bottom.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
paddingEnd¶
Если направление равно ltr, то paddingEnd эквивалентно paddingRight. Если направление rtl, то paddingEnd эквивалентно paddingLeft.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
paddingHorizontal¶
Установка paddingHorizontal аналогична установке обоих paddingLeft и paddingRight.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
paddingLeft¶
paddingLeft работает подобно padding-left в CSS. Подробнее см. padding-left.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
paddingRight¶
paddingRight работает так же, как padding-right в CSS. Подробнее см. padding-right.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
paddingStart¶
Если направление равно ltr, то paddingStart эквивалентно paddingLeft. Если направление rtl, то paddingStart эквивалентно paddingRight.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
paddingTop¶
paddingTop работает так же, как padding-top в CSS. Подробнее см. padding-top.
| Тип | Обязательный |
|---|---|
| Число, ,строка | Нет |
paddingVertical¶
Установка paddingVertical аналогична установке paddingTop и paddingBottom.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
position¶
position в React Native аналогичен обычному CSS, но по умолчанию все имеет значение relative, поэтому позиционирование absolute всегда относительно родителя.
Если вы хотите позиционировать дочерний элемент с помощью определенного количества логических пикселей относительно родителя, задайте для него absolute position.
Если требуется позиционировать дочерний компонент относительно чего-то, что не является его родителем, не используйте для этого стили. Используйте дерево компонентов.
Тип 'position' элемента определяет, как он позиционируется внутри своего родителя.
relativeПо-умолчанию- По умолчанию элемент позиционируется относительно. Это означает, что элемент позиционируется в соответствии с нормальным течением макета, а затем смещается относительно этой позиции на основе значений
top,right,bottomиleft. Смещение не влияет на положение дочерних или родительских элементов. absolute- При абсолютном позиционировании элемент не участвует в обычном потоке верстки. Вместо этого он размещается независимо от своих братьев и сестер. Позиция определяется на основе значений
top,right,bottomиleft.
Значения позиций top, right, bottom и left ведут себя по-разному в зависимости от позиции элемента. Для relative элемента они смещают позицию элемента в указанном направлении. Для absolute элемента эти свойства задают смещение стороны элемента относительно той же стороны на родителе.
| Тип | Обязательный |
|---|---|
enum('absolute', 'relative') | Нет |
right¶
right - это количество логических пикселей для смещения правого края данного компонента.
Работает аналогично right в CSS, но в React Native необходимо использовать точки или проценты. Эмы и другие единицы измерения не поддерживаются.
Подробнее о том, как right влияет на верстку, см. right.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
rowGap¶
rowGap работает аналогично row-gap в CSS. В React Native поддерживаются только пиксельные единицы измерения. Подробнее см. row-gap.
| Тип | Обязательный |
|---|---|
| Число | Нет |
start¶
Когда направление равно ltr, start эквивалентно left. Если направление rtl, то start эквивалентен right.
Этот стиль имеет приоритет над стилями left, right и end.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
top¶
top - это количество логических пикселей для смещения верхнего края данного компонента.
Работает аналогично top в CSS, но в React Native необходимо использовать точки или проценты. Эмы и другие единицы измерения не поддерживаются.
Подробнее о том, как top влияет на верстку, см. top.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
width¶
width задает ширину данного компонента.
Он работает аналогично width в CSS, но в React Native необходимо использовать пункты или проценты. Эмы и другие единицы измерения не поддерживаются. Подробнее см. width.
| Тип | Обязательный |
|---|---|
| Число, строка | Нет |
zIndex¶
zIndex управляет тем, какие компоненты отображаются поверх других. Обычно zIndex не используется. Компоненты отображаются в соответствии с их порядком в дереве документа, поэтому более поздние компоненты рисуются поверх более ранних. Использование zIndex может быть полезно, если у вас есть анимация или пользовательские модальные интерфейсы, где такое поведение нежелательно.
Оно работает подобно свойству CSS z-index - компоненты с большим zIndex будут отрисовываться сверху. Считайте, что направление z направлено от телефона к вашему глазному яблоку. Более подробную информацию см. на сайте z-index.
В iOS для корректной работы zIndex может потребоваться, чтобы View были братьями и сестрами друг друга.
| Тип | Обязательный |
|---|---|
| Число | Нет |