実践で学ぶHTML/CSS -ドロップダウンメニューの作り方(基礎)
どうもです。
最近、HTMLとCSSについてばかり挙げてます。
以前までで基礎編は大体終わりです。これからは実践編に入っていきます。実践編では以前学んだ基礎的な知識を使いつつ、実際に何か作っていきます。なので、もし分からなくなれば巻き戻って復習してみてください。質問等も気軽にくださればお答えします。
ではよろしくお願いします。
さて先日、疑似要素について説明しました。
今回は、それを利用して、ドロップダウンメニューを紹介したいと思います。 下のメニューボタンを作っていきます。
完成イメージ
- メニュー
- ハンバーガー
- ポテト
- <ul class="practice-botton1">
- <li>メニュー
- <ul class="practice-botton2">
- <li>ハンバーガー</li>
- <li>ポテト</li>
- </ul>
- </li>
- </ul>
- .practice-botton1 li,.practice-botton2 li{display:inline-block;
- text-decoration: none;
- cursor:pointer;
- color:inherit;
- background-color:white;
- border:solid;
- width:120px;
- border-radius:5px;
- box-shadow:3px 3px #ddd;
- list-style:none;}
- .practice-botton1 li{position:relative;}
- .practice-botton2{overflow:hidden;
- position:absolute;
- top:40px;
- left:-32px;
- z-index:10;
- height:0;}
- .practice-botton1 li:hover>.practice-botton2{overflow:visible;}
ここで利用されているoverflowプロパティについてまとめます。
指定できる値 | ボックスからはみ出した部分の表示方法 |
---|---|
scroll | スクロールして表示 |
hidden | 表示しない |
auto | ブラウザ依存。ほとんどの場合スクロール表示 |
visible | ボックスからはみ出して表示。overflowを指定しない場合の初期値。 |
ドロップダウンメニューを作る際には、このoverflowプロパティをうまく使うのがポイントです。
指定したセレクタがhover状態の時、あらかじめhiddenしておいたセレクタをvisibleするのがポイントです。また、height:0と指定するのもポイントです。
ドロップダウンメニューを作るには他にも初めdisplay:noneを指定してhover状態でdisplay:visibleする方法もありますが動きを指定できないようです。この2つには違いがありますので、それも押さえて使用するといいでしょう。
colorはinheritを指定すると、親要素のプロパティの値を強制的に引き継ぎます。inheritは他のプロパティでも指定できることが多いですので覚えておきましょう。
cursorはカーソルの状態を指定します。以下のサイトが詳しいです。
cursor - CSS: カスケーディングスタイルシート | MDN
ドロップダウンメニューを作る際に、以下のサイトを参考にさせていただきました。
ドロップダウンメニューをHTML+CSSだけで作る方法 [ホームページ作成] All About
cssだけでドロップダウンメニューを実装(軽い!) – ユズムログ
リンクの下線を消すにはtext-decorationプロパティを使用するといいです。
text-decorationに指定できる値 | |
---|---|
underline | テキストに下線をつける |
overline | テキストに上線をつける |
line-through | テキストに打ち消し線をつける |
none | テキストの線を消す |
簡単になりますが、今回は以上です。
基礎的なことは以前の記事で書いてますので参照してみてください。また時々加筆などもしていきますので、内容が分かりにくかったりすればコメントくだされば嬉しいです。
では。