【デイトラ学習記録】中級編DAY5:ドロワーメニューの実装

Web制作学習

こんにちは。Web制作勉強中のハッサクです。
ドロワーメニューの勉強をしている際に、以下2点の学びがあったので、忘却録としてまとめます。

  1. absoluteは、relativeとセットで使うことが多い
  2. ドロワーメニュー作成時の余白の取り方

今回はドロワーメニュー実装を想定して、話を進めていきます。

absoluteは、relativeとセットで使うことが多い

それぞれの意味を確認

relative:現在の位置を基準に相対的な位置を決める
absolute:親要素を基準に絶対的な位置を決める

サルワカ https://saruwakakun.com/html-css/basic/relative-absolute-fixed

relativeは単独で使えますが、absoluteは基本的に単独では使えません。
(参考:https://web-de-asobo.net/2021/05/01/position/

また、absoluteはrelativeとセットで利用することが多く、利用する場合は以下の通りに設定します。

親要素に position: relative;  を設定
子要素に position: absolute; を設定

ドロワーメニューで例えると、以下のイメージです。

position:absoluteを設定すると、現在配置されている箇所から、親要素を基準とした位置へ移動します。もし移動先に要素があっても、その要素の上に表示されるので、上の形になるのですね。

図解説明はサルワカさんの「5. position: absolute>使用例」をみるとより理解が深まります。

relative と absolute を設定した場合

以下の様に、ファーストビューの画像の上にメニューが表示されます。

relative と absolute を設定しなかった場合

以下の様に、メニューが下に伸びた高さ分、ファーストビューの画像が下がっています。

結論:ドロワーメニュー作成時は、absolute と relative を設定しよう

ドロワーメニュー作成時の余白の取り方

文字間の余白をpaddingでとった場合

最初、メニューの「デイトラとは」「コース一覧」「お問い合わせ」の文字間は、「padding」で設定していました。

ですがpaddingで設定すると、下に表示されるメニュー位置が右にずれます。

メニューの横幅をpadding、縦幅と文字位置をline-heightで指定

文字間の余白をwidthでとった場合

親要素のメニューの横幅に合わせて、子要素のメニューを表示させたい場合は、paddingではなく「width」を利用してあげましょう。

メニューの横幅をwidth、縦幅をline-height、文字位置をtext-align:centerで指定

結論:下に表示されるメニューの位置は、余白の取り方(paddingを使うかwidthを使うか)で変わる

その他参考にしたサイト:https://doggy-kbk12.com/web-design-tips/drop-down-menu/

コメント

タイトルとURLをコピーしました