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で平行四辺形を作る方法「1行足せばできますよ」

どうも、チャーさんです。   あなたは、cssで平行四辺形に できないものかと思っていませんか?   この記事では、要素をcssで平行四辺形に する方法を書いています。 &nbsp …

no image

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

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

no image

インライン要素にmarginの上下が効かない時の解決方法「簡単です」

  どうもチャーさんです。   あなたはインライン要素にmarginの上下を、 効かせたいのに効かなくて困ってませんか?   この記事では、そんな状態の解決方法を、 書い …

no image

cssの書き方class編(初学者向け)

どうも、チャーさんです。 この記事では、cssの書き方を書いています。   具体的にはclass、classを複数使う方法、 idについてとcss書き方についての内容なので、 この記事を読め …

no image

htmlのリンクの下線を消す方法「1行書けば消せますよ」

どうも、チャーさんです。   あなたはhtmlのリンクの下線を消す方法を、 探していませんか?   この記事では、リンクの下線を消す方法を 書いています。   &nbsp …

no image

positionで縦に中央寄せする方法はこちらです。

どうも、チャーさんです。   あなたはpositionで縦に中央寄せをしたいのに、 できずに困っていませんか?     この記事ではpositionで要素を縦に、 中央寄 …

no image

cssの背景画像が繰り返しになるのを解決する方法

どうも、チャーさんです。   あなたはcssで背景画像を設置すると、 繰り返しになっていて困っていませんか?   この記事では、cssで表示した背景画像が、 繰り返しにならない方法 …

no image

cssで見出しに画像を表示させる方法「簡単にできる」

どうも、チャーさんです。 あなたはcssで見出しに画像を表示させたい。 そう思っていませんか?   この記事では、cssで見出しに画像を 表示させる方法を書いてます。   なのであ …

no image

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

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

no image

wordpressのテーマのcssを編集する方法。3分でマスターできます。

どうも、チャーさんです。 あなたはwordpressのテーマのcssを編集したいですか?   この記事では、あなたの好きなように、 wordpressのcssを編集する方法を説明してます。 …

no image

cssのborderを初学者でもわかりやすいよう説明します

どうも、チャーさん(@chaa___san)です。   あなたはcssのborderとは何か? と疑問に思っていませんか?   この記事ではcssのborderについて、 初学者で …

no image

cssで背景色を背景画像の上に重ねる方法「コードつき」

どうも、チャーさんです。   cssで背景色を背景画像に重ねる方法が、 知りたい。そう思っていませんか?   この記事では、cssで背景色を 背景画像の上に重ねる方法を書いています …

no image

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

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

no image

コーダーがphotoshopを使えた方がいいのかについて書きます。

どうも、チャーさんです。   あなたはコーダーはphotoshopを、 学んだ方がいいのか?   仕事獲得のためには、コーダーも、 photoshopを使えた方がいいのか? と疑問 …

no image

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

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

最新記事

チャーさん

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

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

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