css

cssでドロップダウンメニューを作る方法

投稿日:

Pocket

うも、チャーさんです。

 

あなたはcssでドロップダウンメニューを

作りたいと思っていませんか?

 

この記事ではjavascriptなどを使わずに

htmlとcssのみでドロップダウンメニューを

自作する方法を書いています。

 

 

なので、あなたがこの記事を読めば、

ドロップダウンメニューを作れるように

なるでしょう。

 

*この記事では作り方がわかりやすいように、

装飾系のcssは載せてません。

 

ドロップダウンメニューを表示させる方法に

焦点を絞ってるので仕組みや作り方を

知りたい場合にどうぞ。

 

スポンサードサーチ

cssでドロップダウンメニューを作る方法

 

ということで結論からです。

 

cssでドロップダウンメニューを作る

方法ですが、以下のようにすれば、

あなたで自作できます。

 

 

やり方ですが、

1、メニューを作る

2、メニューの中にサブメニューを作る

3、サブメニューにdisplay:noneをつける

4、:hoverでホバーした時にサブメニューをdisplay:blockする

 

以上でcssとhtmlのみでドロップダウンメニューを

作ることができます。

 

ということで、説明していきます。

 

メニューを作る

 

まずメニューを作るですが、

これは簡単でして、

<ul></ul>のなかに<li>タグを書くだけでokです。

 

コードの例としては、

 

<ul>
<li>メニュー</li>
<li>メニュー</li>
<li>メニュー</li>
</ul>

 

上記の感じです。

 

 

が、このままだと縦並びなので、

ulに対してdisplay:flexつければ横並びになります。

 

でこれでメニューはできました。

 

サブメニューを作ろう

 

次にサブメニューの作り方ですが、

これはulのliタグの中にulをもう一度

書くことでできます。

 

わかりにくいと思うので、

コードを載せますと、

以下の感じです。

 

<ul>
 <li>メニュー
  <ul>
   <li>サブメニュー1</li>
   <li>サブメニュー2</li>
   <li>サブメニュー3</li>
  </ul> 
 </li>
</ul>

 

みていただいた通り、

liタグの中に、ulタグがまた入り、

その中にliタグを書いてますよね。

 

このように書くとメニューのなかにメニューを

作れます。

(わかりやすくするため便宜上aタグは今は抜いてます)

 

上記のようにメニューの中に

メニューができます。

 

 

サブメニューを隠しましょう

 

で、次にサブメニューをdisplay:none;で

隠すです。

 

ドロップダウンメニューは、

メニューにマウスを持っていた時に、

サブメニューが表示されるようにするため、

 

サブメニューは普段はdisplay:blockで

隠しておきます。

 

 

やり方は簡単で、

サブメニューのulにdisplay:noneをつけましょう。

 

コードイメージとしては、

<ul>
 <li>メニュー
  <ul class=”submenu”><!–ここにdisplay:none;を指定する–>
   <li>サブメニュー1</li>
   <li>サブメニュー2</li>
   <li>サブメニュー3</li>
  </ul> 
 </li>
</ul>

 

.submenu {

 display:none;

}

 

 

上記でして、2番目のulに、

クラスつけて、display:noneで

隠しましょう。

 

すると、普段はサブメニューが

表示されない状態になります。

 

 

ホバーした時にサブメニューを表示しましょう。

 

で次にhoverでメニューにマウスを載せたときに、

サブメニューが表示されるようにするわけですが、

 

これはhoverを使えば可能です。

 

 

hoverではホバーした時に、

別の要素のcssを変化させることができまして、

例えば以下のコードのように、

 

<ul>
 <li class=”main_menu”>メニュー
  <ul class=”sub”>
   <li>サブメニュー1</li>
   <li>サブメニュー2</li>
   <li>サブメニュー3</li>
  </ul>
 </li>
</ul>

 

.main_menu:hover .sub{
 display:block;
}

 

hoverの後に変化させたい

他の要素(上記では.subの部分)を半角スペース

開けて続けて書くと、

 

.subにdisplay:blockを適用することができます。

 

 

これにより、

メニューにホバーした時に、

サブメニューにdisplay:blockがきき、

 

サブメニューが表示されるようになります。

 

 

でこれでメニューに対して

ホバーした時にサブメニューを表示できるように

なったので、

 

あとはサブメニューの表示位置を、

整えてやればokです。

 

メニューの下に出したければ、

positionを使えばいけますし、

あとは枠をつけたければborderつけましょう。

 

 

スポンサードサーチ

まとめ

 

それではまとめに入ります。

 

cssでドロップダウンメニューを作るには、

以下をやれば作れます。

 

1、メニューを作る

2、メニューの中にサブメニューを作る

3、サブメニューにdisplay:noneをつける

4、:hoverでホバーした時にサブメニューをdisplay:blockする

 

 

あと、上記の手順がめんどい場合、

これコピペすればとりあえずメニューホバーで

サブメニューが表示されるコード貼っときます。

 

html

<ul>
<li class=”main_menu”>メニュー
<ul class=”sub”>
<li>サブメニュー1</li>
<li>サブメニュー2</li>
<li>サブメニュー3</li>
</ul>
</li>
</ul>

 

css

.sub {
display:none;
}
.main_menu:hover .sub{
display:block;
}

 

 

あとは見た目をあなたの好みで

いじればokですし、

 

サブメニューを増やしたければ、

同じ要領で、liタグにulタグを足していけば

okです。

 

 

ということで、これでやり方がわかった

と思いますので、あなたの方でも実践してみましょう。

 

やればあなたのスキルアップです。

 

 

で、まずはメニューを作り、

次にメニューの中にサブメニューを作りましょう。

 

そしてサブメニューをdisplay:none;で隠し、

ホバーした時に表示されるようにしましょう。

 

そうすればドロップダウンメニューの

原型が出来上がりますよ。

 

 

それでは、cssでドロップダウンメニューを

作る方法でした。

 

それでは読んでもらってありがとうございました。

 

チャーさん

-css


スポンサードサーチ

関連記事

no image

cssの書き方でフォントサイズについて知りたいならこの記事

どうも、チャーさんです。   この記事では、cssでフォントサイズ (文字の大きさ)を変える方法を書いてます。     なので、この記事を読めば、 あなたはフォントサイズ …

no image

cssで画像をトリミングする方法。「記述1行で完了」

どうも、チャーさんです。   あなたはcssで画像をトリミングしたい。 そう思っていませんか?   photoshopでトリミングするのめんどい、 cssでできんかな?と思ってませ …

ワードプレスでCSSを使い丸を表示する方法

どうもチャーさんです。 あなたはワードプレスで丸を表示したいと 思ったことはありませんか。   この記事では丸の作りかたを解説してるので ワードプレスなどで丸を表示したい人はどうぞ。 &nb …

no image

cssで三角形を作る方法、コピペで一発でできますよ。

どうも、チャーさんです。   あなたはcssで三角を作る方法を、 探していますか?   この記事ではcssで三角を作る方法を、 書いています。     そしてこ …

no image

cssでボタンにhoverした時に色を変える方法

どうもチャーさんです。   あなたは、cssでボタンにhoverして、 色を変える方法を探していますか?   この記事では、ボタンホバーで、 ボタンの色を変える方法について、 お話 …

no image

absoluteとrelativeの違いがこれを読めば1目でわかりますよ。

  どうも、チャーさんです。   あなたはabsoluteとrelativeの違いがわからず、 困っていませんか?   またそのせいで、思ったように ページ制作に活用でき …

no image

cssでボタンをレスポンシブ対応にする方法(微調整必要なしで楽ですよ)

どうも、チャーさんです。   あなたはcssでボタンをレスポンシブにしたい、 かつブレークポイントごとに微調整する手間ひまの、 必要のないボタンを作る方法はないかと思ってませんか? &nbs …

no image

cssでテーブルをレスポンシブの縦並びにする方法

どうも、チャーさんです。   あなたはcssでテーブルをレスポンシブにし、 かつ縦並びにしたい、と思っていませんか?   この記事では、テーブルを縦並びにする方法を、 紹介していま …

no image

字下げをcssでやる方法。1行だけ、複数行の字下げも対応

どうもチャーさんです。   あなたは字下げをcssでどうやればいいのか? と疑問に思ってませんか?   この記事では、cssを使い、 1行だけ字下げ、複数行を字下げする方法を、 書 …

no image

cssで背景画像をレスポンシブ対応させる方法「1行記述すればok」

どうも、チャーさんです。   あなたはcssで背景画像をレスポンシブ対応させたい、 そう思っていませんか?   この記事では、cssで背景画像を、 レスポンシブ対応させる方法を書い …

no image

cssで背景色をつける方法とコードの書き方

  どうも、チャーさん(@chaa___san)です。   あなたはcssで背景色をつけたいんだけど、 どうすればいいかわからない。   そう思っていませんか? &nbs …

no image

flexcssを使って横並びにする方法(ページ制作に超便利です)

どうも、チャーさんです。   あなたはflexというcssのプロパティを使い、 要素を横並びにする方法を知りたい。 そう思っていませんか?   この記事ではcssのflexを使い、 …

no image

cssのレスポンシブの書き方「初心者向け記事」

どうも、チャーさんです。   あなたはcssのレスポンシブの書き方を、 知りたいと思っていませんか?   この記事では、cssのレスポンシブの書き方、 メディアクエリ、コードの具体 …

no image

cssの読み込み方法を3つ紹介「どれも簡単です」

どうも、チャーさん(@chaa___san)です。   あなたはcssの読み込み方法がわからず、 困っていますか?   この記事ではcssの読み込み方法を3つ紹介してます。 なので …

no image

cssの書き方カンマについての疑問はこの記事で解消

どうも、チャーさんです。   この記事ではcssの書き方の1つである カンマについて書いてます。   なのでこの記事を読めば、あなたは cssのカンマについての疑問が解消され、 さ …

最新記事

チャーさん

プログラミング・筋トレ・unity系の記事などを書いてます。

大学卒業後→開業→個人事業主7年目ぐらいです。webサイト制作したり、unityでゲーム開発しております。

youtubeもやってまして、主にプログラミング動画とかunity系の動画をあげてるので見てください。