CSSのみで表示が切り替わるメニューをつくる

JavaSctiptを使わずにCSSのhover定義でサブメニューの表示ON/OFFを管理する。

親子セレクタを使ってリストの第一階層、第二階層に別々のスタイルシートを指定する。

第二階層はデフォルトでは非表示だが、第一要素のうえにマウス操作でがホバーしているときに、第二階層を表示させる。

第二階層の上にコンテンツが被らないよう、z-indexを使って前面に表示させる。

細かい配置をしたいときは第一階層にposition:relative;をし、第二階層をposition:absolute;で座標指定すると良い。

view source

JavaScript

CSS

ul#menu:after{
  content:"";
  display:block;
  clear:both;
}
ul#menu>li{
  float:left;
  width:120px;
  height:40px;
  background-color:#cccccc;
  border:1px solid #000000;
}


ul#menu>li>ul{
  display:none;
}

ul#menu>li:hover>ul{
  display:block;
}

ul#menu>li>ul>li{
  position:relative;
  left:0px;
  top:0px;
  z-index:2;
  width:120px;
  height:30px;
  background-color:#999999;
  border:1px solid #000000;
}

ul#menu a{
  display:block;
  width:100%;
  height:100%;
}
ul#menu a:hover{
  background-color:#ffcccc;
}

HTML

ページのソースを表示 : Ctrl+U , DevTools : F12

view-source:https://hi0a.com/demo/-css/css3-navigation-menu/

ABOUT

hi0a.com 「ひまアプリ」は無料で遊べるミニゲームや便利ツールを公開しています。

プログラミング言語の動作デモやWEBデザイン、ソースコード、フロントエンド等の開発者のための技術を公開しています。

必要な機能の関数をコピペ利用したり勉強に活用できます。

プログラムの動作サンプル結果は画面上部に出力表示されています。

環境:最新のブラウザ GoogleChrome / Windows / Android / iPhone 等の端末で動作確認しています。

画像素材や音素材は半分自作でフリー素材配布サイトも利用しています。LINK参照。

動く便利なものが好きなだけで技術自体に興味はないのでコードは汚いです。

途中放置や実験状態、仕様変更、API廃止等で動かないページもあります。