【CSS】flexboxまとめ【flexbox】

こばゆた
こばゆた

flexbox編で学んだことをまとめましたので実際に動かして確認してみてください

結構複雑な動きになるので一個一個確認しながら動かすと良いです!

チャッピー
チャッピー

うーん💦

混乱してきたぞ

きなこ
きなこ

わからなくなったら以前の記事に戻って復習だよ!

aaa
bbb
ccc
ddd
eee
fff
flex-direction

row
row-reverse
column
column-reverse
justify-content

flex-start
center
flex-end
space-between
space-around
align-items

strech
flex-start
center
flex-end
flex-wrap

wrap
wrap-reverse
nowrap
align-content

stretch
flex-start
center
flex-end
space-between
space-around
align-self

flex-start
center
flex-end
auto
aaa
bbb
ccc
ddd
eee
flex-direction

column
row
order

aの値を”1″
eの値を”1″
flex

flex:1;
none
スポンサーリンク

1.flex-boxの基本

<div class="flex-container">
  <div class="boxa">aaa</div>
  <div class="boxb">bbb</div>
  <div class="boxc">ccc</div>
  <div class="boxd">ddd</div>
  <div class="boxe">eee</div>
</div>
.flex-container{
 display: flex;
}
スポンサーリンク

2.flex-container(親要素)に使えるプロパティ

2-1.flex-direction

主軸の方向を決めるプロパティ

変化
row主軸を水平方向にする(左から右)
row-reverse主軸を水平方向にし始点が反転する(右から左)
column主軸を垂直方向にする(上から下)
row-reverse主軸を垂直方向にし始点が反転する(下から上)

2-2.justify-content

主軸方向の並びを指定するプロパティ

主軸方向に始点揃いに配置するspace-around
変化
flex-start
center主軸方向に中央揃いに配置する
flex-end主軸方向に終点揃いに配置する
space-between主軸方向に子要素を両端配置して残りの子要素を均等に配置する
主軸方向の余白も含め均等配置する

2-3.align-items

交差軸方向の並びを指定するプロパティ

変化
stretch交差軸方向に親要素の高さいっぱいに伸びる
flex-start交差軸方向に始点揃いに配置する
center交差軸方向に中心揃いに配置する
flex-end交差軸方向に終点揃いに配置する

justify-contentプロパティとalign-itemsプロパティはそれぞれ余白がないと機能しません。

2-4.flex-wrap

子要素が親要素の幅(高さ)を超えた時に折り返すか否かを指定するプロパティ

変化
wrap主軸方向の親要素から溢れた際に折り返す
wrap-reverse主軸方向の親要素から溢れた際に折り返し、交差軸が逆になる
nowrap主軸方向の親要素から溢れた際に折り返さない

2-5.align-content 

flex-wrapプロパティで折り返しが指定されているのが前提で、交差軸方向で要素を揃えるために使うプロパティ

変化
stretch折り返した子要素を親要素の分伸ばす(幅や高さの指定がない場合)
flex-start折り返した子要素を交差軸方向の始点揃いに配置する
center折り返した子要素を交差軸方向の中央揃いに配置する
flex-end折り返した子要素を交差軸方向の終点揃いに配置する
space-between折り返した子要素を交差軸方向の両端に配置してから残りを均等配置する
space-around折り返した子要素を交差軸方向に均等配置する

2-6.flex-flow

flex-directionプロパティとflex-wrapプロパティを同時に指定できるプロパティ

セレクター{
 flex-flow: flex-directionプロパティの値 flex-wrapプロパティ値;
}

3.flex-item(子要素)に使えるプロパティ

3-1.align-self

子要素を個別に交差軸方向への配置を指定するプロパティ

変化
flex-start子要素を個別に交差軸方向の始点揃いに配置する
center子要素を個別に交差軸方向の中央揃いに配置する
flex-end子要素を個別に交差軸方向の終点揃いに配置する
auto親要素に合わせる

3-2.flex-basis

子要素の主軸方向のサイズを変えるプロパティ

同時に指定するとwidth<flex-basis<max-widthという優先順位になる

3-3.flex-grow

主軸の方向に余白がある場合、子要素にどう分けるかを指定するプロパティ

変化
0(初期値)主軸方向の親要素に余白がある場合に分けない
数値主軸方向の親要素に余白がある際に指定した数値の割合を分ける

1つだけに値を”1″にすると余白を全て割り当てることができる

3-4.flex-shrink

親要素から子要素が溢れた場合の縮む比率を指定するプロパティ

変化
1(初期値)主軸方向の親要素から溢れた際に縮める
数値主軸方向の親要素から溢れた際に指定した数値の割合分縮める
0主軸方向の親要素から溢れた際に縮めない

3-5.flex

”flex-basisプロパティ”、”flex-glowプロパティ”、”flex-shrinkプロパティ”をひとまとめで指定するプロパティ

セレクター{
 flex: flex-glowプロパティの値 flex-shrinkプロパティの値 flex-basisプロパティの値;
}
変化
initial“flex: 0 1 auto;”の意味で余白があっても分けないが溢れたら縮める
auto“flex: 1 1 auto;の意味で余白があれば分け、溢れても縮める”
none“flex: 0 0 auto;”の意味で何もしない
1“flex: 1 0 0%;”の意味で余白があったら分ける

3-6.order

順序の指定ができるプロパティ

初期値は”0″

セレクター{
 oredr: 値;
}
こばゆた
こばゆた

今回で”flex-box編”は終了です!

混乱する事がよくありますが主軸と交差軸の理解をしっかりして、どう動くかを実際に使ってみて覚えていくのが一番の勉強法です

こばゆた
こばゆた

flex-boxを勉強するのに良いサイトもご紹介しておきます!

Flexbox Froggy
A game for learning CSS flexbox
日本語対応!CSS Flexboxのチートシートを作ったので配布します
FlexboxとはFlexible Box Layout Moduleのことで、その名の通りフレキシブルで簡単にレイアウトが組めちゃう素敵ボックスです。現在ほとんどすべての最新ブラウザーでFlexboxをサポートしており

コメント