主軸方向の配置

justify-content と余りの行き先

主軸という考え方

flex コンテナには主軸(しゅじく)があります。既定では左から右へ向かう横向きの軸で、flex アイテムはこの主軸にそって順にならんでいきます。justify-content は、その主軸のどこにアイテムのかたまりを寄せるかを決めるプロパティです。親に 1 行書くだけで、全体の位置がまとめて動きます。

よく使う値

  • flex-start 主軸の先頭に寄せる。これが既定です
  • center 主軸の真ん中に寄せる
  • flex-end 主軸の末尾に寄せる
  • space-between 両端いっぱいまで広げ、アイテムの間を均等にあける
  • space-around アイテムの左右に同じ幅の余白をつける

ナビバーでよく使うのは center と space-between です。ロゴを左、メニューを右に置きたいときは space-between が便利です。

メニューを中央に置く

今回はメニューをページの真ん中にそろえます。.site-nav uljustify-content: center を足すだけです。text-align: center では li の中の文字しか動きませんが、justify-content ならアイテムの箱ごとまとめて動きます。このちがいも値を切りかえて見くらべてみてください。

.site-nav ul { display: flex; justify-content: center; }

課題

  1. .site-nav ul に justify-content を追加する
  2. 値は center にして、メニュー全体を真ん中に寄せる

ヒント

index.html
style.css
プレビュー

できているか

  • メニューが主軸の中央に寄っている
  • メニューが横一列のままになっている