レイアウトプロパティ
これらのプロパティに関するより詳細な例は、Flexboxによるレイアウトページにあります。
例
次の例は、異なるプロパティがReact Nativeのレイアウトにどのように影響を与えるかを示しています。たとえば、プロパティflexWrap
の値を変更しながら、UIから四角形を追加または削除してみてください。
- TypeScript
- JavaScript
リファレンス
プロパティ
alignContent
alignContent
は、親のalignContent
を上書きして、行が交差方向にどのように整列するかを制御します。詳細については、https://developer.mozilla.org/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://developer.mozilla.org/en-US/docs/Web/CSS/align-itemsを参照してください。
型 | 必須 |
---|---|
enum('flex-start', 'flex-end', 'center', 'stretch', 'baseline') | いいえ |
alignSelf
alignSelf
は、親のalignItems
を上書きして、子が交差方向にどのように整列するかを制御します。CSSのalign-self
と同様に機能します(デフォルト:auto)。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/align-selfを参照してください。
型 | 必須 |
---|---|
enum('auto', 'flex-start', 'flex-end', 'center', 'stretch', 'baseline') | いいえ |
aspectRatio
アスペクト比は、ノードの未定義の次元のサイズを制御します。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratioを参照してください。
- 幅/高さが設定されたノードでは、アスペクト比は設定されていない次元のサイズを制御します
- 設定されたflexベースを持つノードでは、アスペクト比は、設定されていない場合、交差軸におけるノードのサイズを制御します
- 測定関数を持つノードでは、アスペクト比は、測定関数がflexベースを測定するように機能します
- flex grow/shrinkを持つノードでは、アスペクト比は、設定されていない場合、交差軸におけるノードのサイズを制御します
- アスペクト比は、最小/最大寸法を考慮します
型 | 必須 |
---|---|
number, string | いいえ |
borderBottomWidth
borderBottomWidth
は、CSSのborder-bottom-width
と同様に機能します。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-widthを参照してください。
型 | 必須 |
---|---|
number | いいえ |
borderEndWidth
方向がltr
の場合、borderEndWidth
はborderRightWidth
と同等です。方向がrtl
の場合、borderEndWidth
はborderLeftWidth
と同等です。
型 | 必須 |
---|---|
number | いいえ |
borderLeftWidth
borderLeftWidth
は、CSSのborder-left-width
と同様に機能します。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/border-left-widthを参照してください。
型 | 必須 |
---|---|
number | いいえ |
borderRightWidth
borderRightWidth
は、CSSのborder-right-width
と同様に機能します。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/border-right-widthを参照してください。
型 | 必須 |
---|---|
number | いいえ |
borderStartWidth
方向がltr
の場合、borderStartWidth
はborderLeftWidth
と同等です。方向がrtl
の場合、borderStartWidth
はborderRightWidth
と同等です。
型 | 必須 |
---|---|
number | いいえ |
borderTopWidth
borderTopWidth
は、CSSのborder-top-width
と同様に機能します。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-widthを参照してください。
型 | 必須 |
---|---|
number | いいえ |
borderWidth
borderWidth
は、CSSのborder-width
と同様に機能します。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/border-widthを参照してください。
型 | 必須 |
---|---|
number | いいえ |
bottom
bottom
は、このコンポーネントの下端をオフセットする論理ピクセル数です。
CSSのbottom
と同様に機能しますが、React Nativeではポイントまたはパーセントを使用する必要があります。emなどの単位はサポートされていません。
bottom
がレイアウトにどのように影響するかについての詳細は、https://developer.mozilla.org/en-US/docs/Web/CSS/bottomを参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
columnGap
columnGap
は、CSSのcolumn-gap
と同様に機能します。React Nativeではピクセル単位のみがサポートされています。詳細については、https://developer.mozilla.org/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
と同等です。
このスタイルは、left
およびright
のスタイルよりも優先されます。
型 | 必須 |
---|---|
number, string | いいえ |
flex
React Nativeでは、flex
はCSSと同じようには機能しません。flex
は文字列ではなく数値であり、Yogaレイアウトエンジンに従って機能します。
flex
が正の数の場合、コンポーネントは柔軟になり、そのflex値に比例してサイズが設定されます。したがって、flex
が2に設定されたコンポーネントは、flex
が1に設定されたコンポーネントの2倍のスペースを占有します。flex: <正の数>
は、flexGrow: <正の数>, flexShrink: 1, flexBasis: 0
と同等です。
flex
が0の場合、コンポーネントはwidth
とheight
に従ってサイズが設定され、柔軟性がありません。
flex
が-1の場合、コンポーネントは通常width
とheight
に従ってサイズが設定されます。ただし、十分なスペースがない場合、コンポーネントはminWidth
とminHeight
まで縮小します。
flexGrow
、flexShrink
、およびflexBasis
はCSSと同じように機能します。
型 | 必須 |
---|---|
number | いいえ |
flexBasis
flexBasis
は、メイン軸に沿ったアイテムのデフォルトサイズを提供する、軸に依存しない方法です。子のflexBasis
を設定することは、親がflexDirection: row
のコンテナーである場合はその子のwidth
を設定すること、または親がflexDirection: column
のコンテナーである場合はその子のheight
を設定することに似ています。アイテムのflexBasis
は、そのアイテムのデフォルトサイズであり、flexGrow
およびflexShrink
の計算が実行される前のサイズです。
型 | 必須 |
---|---|
number, string | いいえ |
flexDirection
flexDirection
は、コンテナーの子がどの方向に進むかを制御します。row
は左から右に、column
は上から下に進み、他の2つが何をするかは推測できるでしょう。CSSのflex-direction
と同様に機能しますが、デフォルトはcolumn
です。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/flex-directionを参照してください。
型 | 必須 |
---|---|
enum('row', 'row-reverse', 'column', 'column-reverse') | いいえ |
flexGrow
flexGrow
は、コンテナー内のスペースが、メイン軸に沿ってその子にどのように分散されるかを記述します。子をレイアウトした後、コンテナーは、子によって指定されたflex grow値に従って、残りのスペースを分散します。
flexGrow
は、0以上の任意の浮動小数点値を受け入れ、0がデフォルト値です。コンテナーは、子のflexGrow
値によって重み付けされた、残りのスペースを子に分散します。
型 | 必須 |
---|---|
number | いいえ |
flexShrink
flexShrink
は、子要素の合計サイズが主軸方向のコンテナサイズをオーバーフローした場合に、主軸に沿って子要素をどのように縮小させるかを記述します。flexShrink
は flexGrow
と非常に似ており、オーバーフローしたサイズを負の残りスペースとみなせば、同じように考えることができます。これらの2つのプロパティは、子要素が必要に応じて拡大・縮小できるようにすることで、うまく連携します。
flexShrink
は、0以上の浮動小数点数を受け付け、デフォルト値は0です。コンテナは、子要素の flexShrink
の値によって重み付けされた割合で子要素を縮小します。
型 | 必須 |
---|---|
number | いいえ |
flexWrap
flexWrap
は、子要素がフレキシブルコンテナの端に到達した後で折り返すことができるかどうかを制御します。CSSの flex-wrap
と同様に動作します(デフォルト:nowrap)。詳細については、https://developer.mozilla.org/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://developer.mozilla.org/en-US/docs/Web/CSS/gap を参照してください。
型 | 必須 |
---|---|
number | いいえ |
height
height
は、このコンポーネントの高さを設定します。
CSSの height
と同様に動作しますが、React Nativeではポイントまたはパーセンテージを使用する必要があります。emやその他の単位はサポートされていません。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/height を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
justifyContent
justifyContent
は、主軸方向の子要素の配置を制御します。たとえば、子要素が垂直方向に流れている場合、justifyContent
は垂直方向の配置を制御します。CSSの justify-content
と同様に動作します(デフォルト:flex-start)。詳細については、https://developer.mozilla.org/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://developer.mozilla.org/en-US/docs/Web/CSS/left を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
margin
margin
を設定すると、marginTop
, marginLeft
, marginBottom
, marginRight
をそれぞれ設定するのと同じ効果があります。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/margin を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
marginBottom
marginBottom
は、CSSの margin-bottom
と同様に動作します。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
marginEnd
direction が ltr
の場合、marginEnd
は marginRight
と同等です。direction が rtl
の場合、marginEnd
は marginLeft
と同等です。
型 | 必須 |
---|---|
number, string | いいえ |
marginHorizontal
marginHorizontal
を設定すると、marginLeft
と marginRight
の両方を設定するのと同じ効果があります。
型 | 必須 |
---|---|
number, string | いいえ |
marginLeft
marginLeft
は、CSSの margin-left
と同様に動作します。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
marginRight
marginRight
は、CSSの margin-right
と同様に動作します。詳細については、https://developer.mozilla.org/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://developer.mozilla.org/en-US/docs/Web/CSS/margin-top を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
marginVertical
marginVertical
を設定すると、marginTop
と marginBottom
の両方を設定するのと同じ効果があります。
型 | 必須 |
---|---|
number, string | いいえ |
maxHeight
maxHeight
は、このコンポーネントの最大高さを論理ピクセルで表します。
CSSの max-height
と同様に動作しますが、React Nativeではポイントまたはパーセンテージを使用する必要があります。emやその他の単位はサポートされていません。
詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/max-height を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
maxWidth
maxWidth
は、このコンポーネントの最大幅を論理ピクセルで表します。
CSSの max-width
と同様に動作しますが、React Nativeではポイントまたはパーセンテージを使用する必要があります。emやその他の単位はサポートされていません。
詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/max-width を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
minHeight
minHeight
は、このコンポーネントの最小高さを論理ピクセルで表します。
CSSの min-height
と同様に動作しますが、React Nativeではポイントまたはパーセンテージを使用する必要があります。emやその他の単位はサポートされていません。
詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/min-height を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
minWidth
minWidth
は、このコンポーネントの最小幅を論理ピクセルで表します。
CSSの min-width
と同様に動作しますが、React Nativeではポイントまたはパーセンテージを使用する必要があります。emやその他の単位はサポートされていません。
詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/min-width を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
overflow
overflow
は、子要素の測定と表示方法を制御します。overflow: hidden
はビューをクリップし、overflow: scroll
は親の主軸とは独立してビューを測定します。CSSの overflow
と同様に動作します(デフォルト:visible)。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/overflow を参照してください。
型 | 必須 |
---|---|
enum('visible', 'hidden', 'scroll') | いいえ |
padding
padding
を設定すると、paddingTop
, paddingBottom
, paddingLeft
, paddingRight
をそれぞれ設定するのと同じ効果があります。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/padding を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
paddingBottom
paddingBottom
は、CSSの padding-bottom
と同様に動作します。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/padding-bottom を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
paddingEnd
direction が ltr
の場合、paddingEnd
は paddingRight
と同等です。direction が rtl
の場合、paddingEnd
は paddingLeft
と同等です。
型 | 必須 |
---|---|
number, string | いいえ |
paddingHorizontal
paddingHorizontal
を設定すると、paddingLeft
と paddingRight
の両方を設定するのと同じ効果があります。
型 | 必須 |
---|---|
number, string | いいえ |
paddingLeft
paddingLeft
は、CSSの padding-left
と同様に動作します。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/padding-left を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
paddingRight
paddingRight
は、CSSの padding-right
と同様に動作します。詳細については、https://developer.mozilla.org/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://developer.mozilla.org/en-US/docs/Web/CSS/padding-top を参照してください。
型 | 必須 |
---|---|
数値, 文字列 | いいえ |
paddingVertical
paddingVertical
を設定すると、paddingTop
と paddingBottom
の両方を設定するのと同じです。
型 | 必須 |
---|---|
number, string | いいえ |
position
React Native の position
は 通常の CSS と似ていますが、すべてデフォルトで relative
に設定されています。
relative
は、レイアウトの通常のフローに従って要素を配置します。インセット (top
、bottom
、left
、right
) は、このレイアウトに対して相対的にオフセットされます。
absolute
は、レイアウトの通常のフローから要素を取り除きます。インセットは、その包含ブロックに対して相対的にオフセットされます。
static
は、レイアウトの通常のフローに従って要素を配置します。インセットは効果がありません。static
要素は、絶対配置された子要素の包含ブロックを形成しません。
詳細については、Flexbox を使用したレイアウトのドキュメントを参照してください。また、Yoga のドキュメントには、React Native と CSS での position
の違いに関する詳細が記載されています。
型 | 必須 |
---|---|
enum('absolute', 'relative', 'static') | いいえ |
right
right
は、このコンポーネントの右端をオフセットする論理ピクセル数です。
CSS の right
と同様に機能しますが、React Native ではポイントまたはパーセントを使用する必要があります。em やその他の単位はサポートされていません。
right
がレイアウトにどのように影響するかについての詳細は、https://developer.mozilla.org/en-US/docs/Web/CSS/right を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
rowGap
rowGap
は CSS の row-gap
と同様に機能します。React Native ではピクセル単位のみがサポートされています。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap を参照してください。
型 | 必須 |
---|---|
number | いいえ |
start
方向が ltr
の場合、start
は left
と同等です。方向が rtl
の場合、start
は right
と同等です。
このスタイルは、left
、right
、および end
スタイルよりも優先されます。
型 | 必須 |
---|---|
number, string | いいえ |
top
top
は、このコンポーネントの上端をオフセットする論理ピクセル数です。
CSS の top
と同様に機能しますが、React Native ではポイントまたはパーセントを使用する必要があります。em やその他の単位はサポートされていません。
top
がレイアウトにどのように影響するかについての詳細は、https://developer.mozilla.org/en-US/docs/Web/CSS/top を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
width
width
は、このコンポーネントの幅を設定します。
CSS の width
と同様に機能しますが、React Native ではポイントまたはパーセントを使用する必要があります。em やその他の単位はサポートされていません。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/width を参照してください。
型 | 必須 |
---|---|
number, string | いいえ |
zIndex
zIndex
は、どのコンポーネントが他のコンポーネントの上に表示されるかを制御します。通常、zIndex
は使用しません。コンポーネントはドキュメントツリー内の順序に従ってレンダリングされるため、後のコンポーネントが前のコンポーネントの上に描画されます。zIndex
は、この動作を必要としないアニメーションやカスタムモーダルインターフェイスがある場合に役立ちます。
これは CSS の z-index
プロパティのように機能します - zIndex
の値が大きいコンポーネントが上にレンダリングされます。z 方向は、電話からあなたの目に向かって指していると考えてください。詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/z-index を参照してください。
iOS では、zIndex
が期待どおりに動作するために、View
が互いに兄弟である必要がある場合があります。
型 | 必須 |
---|---|
number | いいえ |