Перейти к содержанию

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 в 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 были братьями и сестрами друг друга.

Тип Обязательный
Число Нет

Комментарии