Flexboxは、CSSはWebページのレイアウトを設定できるモジュール。
Flexboxを使うと簡単に整列したり、配置できるようになるので、ヘッダーなどのレイアウトに使われています。
今回の記事では、Flexboxを使ったヘッダーの作り方を紹介します。
目次
よくあるヘッダーレイアウトをFlexboxで作る
左にロゴ、右にメニューがあるヘッダーレイアウト
【解説】 右に寄せる要素(今回だとnav)に、margin-left:auto
を設定します。
nav {
margin-left: auto;
}
子要素のmarginにautoを設定すると、空いたスペース分marginを広げるようです。
今回の場合は、navの左の空きスペースを埋めるようにmarginが拡張されるので、navは右側に押し出されます。
逆に、ロゴの方にmargin-right:auto
を設定すると、ロゴが左に移動します。
margin:auto
は上下中央の配置になります。
【解説記事】
CSS Flexboxとmargin: auto;の自動マージンがどのように相互作用するか、両端揃え・右寄せの実装テクニック
真ん中にロゴ、左右にメニューがあるヘッダーレイアウト
【解説】左右にマージンを設定し、ロゴを真ん中に配置するようにしています。
.logo{
margin: 0 auto;
}
上にロゴ、下にメニューがあるヘッダーレイアウト
【解説】ロゴとメニューは縦に並べたいので、flex-direction: column
と設定しています。
.header {
display: flex;
align-items: center;
flex-direction: column;
}