Flex
Flex(フレックス)を使うと,配置などのレイアウトを簡単に行えます。 複雑な実装はカスタムCSSが必要です。フレックス ユーティリティの使い方の例を示します。
Flexの動作を有効にする(Enable flex behaviors)
display
を適用して, Flexコンテナを作成し, 子要素をFlexアイテムに変換できます。
I'm an inline flexbox container!
.d-flex
と .d-inline-flex
でレスポンシブにもできます。
.d-flex
.d-inline-flex
.d-sm-flex
.d-sm-inline-flex
.d-md-flex
.d-md-inline-flex
.d-lg-flex
.d-lg-inline-flex
.d-xl-flex
.d-xl-inline-flex
方向(Direction)
direction
を使用して, コンテナのFlexアイテムの方向を設定できます。
ほとんどの場合, ブラウザのデフォルトが row
なので, 左から横並びのクラスは省略可能です。
.flex-row
: 左から横並び
.flex-row-reverse
: 右から横並び
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
縦並びの設定では
.flex-column
: 上から縦並び
.flex-column-reverse
: 下から縦並び
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
レスポンシブな設定では flex-direction
を使用します。
.flex-row
.flex-row-reverse
.flex-column
.flex-column-reverse
.flex-sm-row
.flex-sm-row-reverse
.flex-sm-column
.flex-sm-column-reverse
.flex-md-row
.flex-md-row-reverse
.flex-md-column
.flex-md-column-reverse
.flex-lg-row
.flex-lg-row-reverse
.flex-lg-column
.flex-lg-column-reverse
.flex-xl-row
.flex-xl-row-reverse
.flex-xl-column
.flex-xl-column-reverse
Justify content
justify-content
では下記を使用できます。(flex-direction: column
を適用するとy軸になります。)
start
, end
, center
, between
, around
を使用できます。
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
justify-content
はレスポンシブにも対応しています。
.justify-content-start
.justify-content-end
.justify-content-center
.justify-content-between
.justify-content-around
.justify-content-sm-start
.justify-content-sm-end
.justify-content-sm-center
.justify-content-sm-between
.justify-content-sm-around
.justify-content-md-start
.justify-content-md-end
.justify-content-md-center
.justify-content-md-between
.justify-content-md-around
.justify-content-lg-start
.justify-content-lg-end
.justify-content-lg-center
.justify-content-lg-between
.justify-content-lg-around
.justify-content-xl-start
.justify-content-xl-end
.justify-content-xl-center
.justify-content-xl-between
.justify-content-xl-around
アイテムの整列(Align items)
align-items
を使用してFlexアイテムの配置を変更できます。
start
, end
, center
, baseline
, stretch
を使用できます。
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
align-items
はレスポンシブにも対応しています。
.align-items-start
.align-items-end
.align-items-center
.align-items-baseline
.align-items-stretch
.align-items-sm-start
.align-items-sm-end
.align-items-sm-center
.align-items-sm-baseline
.align-items-sm-stretch
.align-items-md-start
.align-items-md-end
.align-items-md-center
.align-items-md-baseline
.align-items-md-stretch
.align-items-lg-start
.align-items-lg-end
.align-items-lg-center
.align-items-lg-baseline
.align-items-lg-stretch
.align-items-xl-start
.align-items-xl-end
.align-items-xl-center
.align-items-xl-baseline
.align-items-xl-stretch
特定アイテムの整列(Align self)
align-self
を適用して特定のアイテムの配置を変更できます。
start
, end
, center
, baseline
, stretch
を使用できます。
Flex item
Aligned flex item
Flex item
Flex item
Aligned flex item
Flex item
Flex item
Aligned flex item
Flex item
Flex item
Aligned flex item
Flex item
Flex item
Aligned flex item
Flex item
Responsive variations also exist for align-self
.
align-self
はレスポンシブにも対応しています。
.align-self-start
.align-self-end
.align-self-center
.align-self-baseline
.align-self-stretch
.align-self-sm-start
.align-self-sm-end
.align-self-sm-center
.align-self-sm-baseline
.align-self-sm-stretch
.align-self-md-start
.align-self-md-end
.align-self-md-center
.align-self-md-baseline
.align-self-md-stretch
.align-self-lg-start
.align-self-lg-end
.align-self-lg-center
.align-self-lg-baseline
.align-self-lg-stretch
.align-self-xl-start
.align-self-xl-end
.align-self-xl-center
.align-self-xl-baseline
.align-self-xl-stretch
Fill
.flex-fill
(flex: 1 1 auto)を使用して, 水平スペースを占有しながら, 同じ幅に強制できます。等幅, または均等幅のナビゲーションで特に便利です。
Flex item
Flex item
Flex item
flex-fill
はレスポンシブにも対応しています。
.flex-fill
.flex-sm-fill
.flex-md-fill
.flex-lg-fill
.flex-xl-fill
伸縮(Grow and shrink)
.flex-grow-*
を適用するとアイテムの伸縮を設定できます。
以下の例の .flex-grow-1
(flex-grow: 1)は使用可能なすべてのスペースを使用し, 残りの2つのFlex要素は必要最小限のスペースを使用します。
Flex item
Flex item
Third flex item
.flex-shrink-*
を適用するとFlexアイテムの縮小できます。
下記の例を参考にしてください。
flex-grow
と flex-shrink
はレスポンシブに対応しています。
.flex-{grow|shrink}-0
.flex-{grow|shrink}-1
.flex-sm-{grow|shrink}-0
.flex-sm-{grow|shrink}-1
.flex-md-{grow|shrink}-0
.flex-md-{grow|shrink}-1
.flex-lg-{grow|shrink}-0
.flex-lg-{grow|shrink}-1
.flex-xl-{grow|shrink}-0
.flex-xl-{grow|shrink}-1
自動マージン(Auto margins)
自動マージンでFlexアイテムを制御する3つの例を以下に示します。
(IE10 , IE11 では justify-content
の値を持つFlexアイテムの自動マージンをサポートしていません。 詳細は See this StackOverflow answer )
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
With align-items
align-items
, flex-direction:column
と合わせて margin-top:auto
や margin-bottom:auto
を組み合わせるとFlexアイテムをコンテナの垂直方向に移動できます。
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Wrap
コンテナ内でどのように折り返すかを変更できます。
.flex-nowrap
: 折り返しなし
.flex-wrap
: 折り返しあり
.flex-wrap-reverse
: 逆方向に折り返し
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
flex-wrap
はレスポンシブにも対応しています。
.flex-nowrap
.flex-wrap
.flex-wrap-reverse
.flex-sm-nowrap
.flex-sm-wrap
.flex-sm-wrap-reverse
.flex-md-nowrap
.flex-md-wrap
.flex-md-wrap-reverse
.flex-lg-nowrap
.flex-lg-wrap
.flex-lg-wrap-reverse
.flex-xl-nowrap
.flex-xl-wrap
.flex-xl-wrap-reverse
Order
order
を使用して特定のFlexアイテムの表示順を変更できます。
First flex item
Second flex item
Third flex item
order
はレスポンシブにも対応しています。
.order-0
.order-1
.order-2
.order-3
.order-4
.order-5
.order-6
.order-7
.order-8
.order-9
.order-10
.order-11
.order-12
.order-sm-0
.order-sm-1
.order-sm-2
.order-sm-3
.order-sm-4
.order-sm-5
.order-sm-6
.order-sm-7
.order-sm-8
.order-sm-9
.order-sm-10
.order-sm-11
.order-sm-12
.order-md-0
.order-md-1
.order-md-2
.order-md-3
.order-md-4
.order-md-5
.order-md-6
.order-md-7
.order-md-8
.order-md-9
.order-md-10
.order-md-11
.order-md-12
.order-lg-0
.order-lg-1
.order-lg-2
.order-lg-3
.order-lg-4
.order-lg-5
.order-lg-6
.order-lg-7
.order-lg-8
.order-lg-9
.order-lg-10
.order-lg-11
.order-lg-12
.order-xl-0
.order-xl-1
.order-xl-2
.order-xl-3
.order-xl-4
.order-xl-5
.order-xl-6
.order-xl-7
.order-xl-8
.order-xl-9
.order-xl-10
.order-xl-11
.order-xl-12
Align content
align-content
をアイテムを整列させることができます。
start
, end
, center
, between
, around
, stretch
から選択できます。
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
align-content
はレスポンシブにも対応しています。
.align-content-start
.align-content-end
.align-content-center
.align-content-around
.align-content-stretch
.align-content-sm-start
.align-content-sm-end
.align-content-sm-center
.align-content-sm-around
.align-content-sm-stretch
.align-content-md-start
.align-content-md-end
.align-content-md-center
.align-content-md-around
.align-content-md-stretch
.align-content-lg-start
.align-content-lg-end
.align-content-lg-center
.align-content-lg-around
.align-content-lg-stretch
.align-content-xl-start
.align-content-xl-end
.align-content-xl-center
.align-content-xl-around
.align-content-xl-stretch