純粋な CSS で実装された大きなドロップダウン メニューのサンプル コード

純粋な CSS で実装された大きなドロップダウン メニューのサンプル コード

これは純粋に CSS で実装された大きなドロップダウン メニューです。この大きなメニューは、js コードを一切使用せず、HTML と純粋な CSS コードで作成されており、サードパーティのプラグインに依存しません。多数の列カテゴリを持つ大規模な Web サイトに適しています。

デモアドレスを表示: css_menu

ソースコードをダウンロード: css_menu_jb51.rar

HTML構造

このメガメニューの HTML 構造は次のとおりです。

<ナビ>
  <ul class="コンテナ ul-reset">
    <li><a href='#'>ホーム</a></li>
    <li class='ドロップ可能'>
      <a href='#'>カテゴリー 1</a>
      <div class='メガメニュー'>
        <div class="コンテナcf">
          <ul class="ul-reset">
            <h3>見出し 1</h3>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
          </ul><!-- .ul-reset -->
          <ul class="ul-reset">
            <h3>見出し 2</h3>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
          </ul><!-- .ul-reset -->
          <ul class="ul-reset">
            <h3>見出し3</h3>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 1 のサブリンク</a></li>
          </ul><!-- .ul-reset -->
          <ul class="ul-reset">
            <h3>見出し4</h3>
            <li><img src="http://placehold.it/205x172"></li>
          </ul>
        </div><!-- .コンテナ -->
      </div><!-- .mega-menu -->
    </li><!-- .droppable -->
    <li class='ドロップ可能'>
      <a href='#'>カテゴリー 2</a>
      <div class='メガメニュー'>
        <div class="コンテナcf">
          <ul class="ul-reset">
            <h3>見出し 1</h3>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
          </ul><!-- .ul-reset -->
          <ul class="ul-reset">
            <h3>見出し 2</h3>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
          </ul><!-- .ul-reset -->
          <ul class="ul-reset">
            <h3>見出し3</h3>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
          </ul><!-- .ul-reset -->
          <ul class="ul-reset">
            <h3>見出し4</h3>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
            <li><a href='#'>カテゴリ 2 のサブリンク</a></li>
          </ul><!-- .ul-reset -->
        </div><!-- .コンテナ -->
      </div><!-- .mega-menu-->
    </li><!-- .droppable -->
    <li><a href='#'>カテゴリー 3</a></li>
    <li><a href='#'>カテゴリー 4</a></li>
    <li><a href='#'>カテゴリー 5</a></li>
    <li><a href='#'>カテゴリー 6</a></li>
  </ul><!-- .container .ul-reset -->
</nav>

CS

メガメニューに次の CSS スタイルを追加します。

/* #リセット
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
html {ボックスのサイズ: 境界線ボックス;}
*、*:before、*:after {box-sizing: inherit; }
/* #ユニバーサルスタイルとデフォルトスタイル
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
体 {
    背景: url(../img/black-wood-small.jpg);
    色: #ddd;
    フォントファミリ: "Open Sans"、サンセリフ;
    フォントサイズ: 14px;
  行の高さ: 1;
  マージン: 0;
  パディング: 0;
  テキスト配置: 中央;
}
{テキスト装飾: なし;}
h1 {
  フォントサイズ: 40px;
    フォントの太さ: 700;
  下マージン: 20px;
    上マージン: 20px;
}
h2 {
  フォントサイズ: 15px;
    フォントの太さ: 600;
  下部マージン: 30px;
    上マージン: 10px;
}
。容器 {
  マージン: 自動;
  幅: 940ピクセル;
}
.ul-リセット{
  左パディング: 0;
   上マージン: 0;
   下マージン: 0;
  リストスタイル: なし;
}
/* #ナビゲーションスタイル
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
ナビゲーション{
  背景: #424242;
  フォントサイズ: 0;
  位置: 相対的;
}
nav > ul > li {
  表示: インラインブロック;
    フォントサイズ: 14px;
    パディング: 0 15px;
    位置: 相対的;
}
nav > ul > li:first-child {padding-left: 0;}
nav > ul > li:last-child {padding-right: 0;}
nav > ul > li > a {
  色: #fff;
    表示: ブロック;
    位置: 相対的;
    パディング: 20px 0;
    border-bottom: 3px 透明の実線;
}
ナビ > ul > li:hover > a {
  色: #69aae0; 
    下境界線: 3px 実線 #69aae0;
}
/* #メガメニュースタイル
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.メガメニュー{
  背景: #f0f0f0;
    表示: なし;
    左: 0;
    位置: 絶対;
    テキスト配置: 左;
    幅: 100%;
}
.mega-menu h3 {color: #444;}
.メガメニュー ul {
  フロート: 左;
    下マージン: 20px;
    右マージン: 40px;
    幅: 205ピクセル;
}
.mega-menu ul:last-child {margin-right: 0;}
.mega-menu a {
  下境界線: 1px 実線 #ddd;
    色: #4ea3d8;
    表示: ブロック;
    パディング: 10px 0;
}
.mega-menu a:hover {color: #2d6a91;}
/* #ドロップ可能なクラススタイル
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.droppable {位置: 静的;}
.droppable > a:after {
  内容: "\f107";
    フォントファミリー: FontAwesome;
    フォントサイズ: 12px;
    左パディング: 6px;
    位置: 相対的;
    上: -1px;
}
.droppable:hover .mega-menu {display: block;}
/* #ブラウザクリアフィックス
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.cf:前、
.cf:後{
  内容: " "; /* 1 */
   表示: テーブル; /* 2 */
}
.cf:after {clear: both;}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  docker によってプルされたイメージがどこに保存されるかの詳細な説明

>>:  mysql8.0.23 Linux (centos7) のインストールの完全かつ詳細なチュートリアル

推薦する

SQLインジェクションの詳しい解説 - セキュリティ編(第2部)

この記事に誤りがあったり、ご提案がありましたら、お気軽にご連絡ください。よろしくお願いいたします。は...

Linux スレッド間の同期と排他制御の知識ポイントのまとめ

スレッドが同時に実行される場合、スレッドがリソースを競合してデータの曖昧さが生じるのを防ぐために、重...

JS 矢印関数に適さないシナリオは何ですか?

目次概要オブジェクトにメソッドを定義するオブジェクトリテラルオブジェクトプロトタイプ動的コンテキスト...

JS のディープコピーとシャローコピーの詳細

目次1. 浅いコピーとはどういう意味ですか? 2. ディープコピーとはどういう意味ですか? 3. デ...

src 属性と href 属性の違い

src と href には違いがあり、混同される可能性があります。 src は現在の要素を置き換える...

MySQLの認可コマンド grant の使い方のまとめ

MySQL 認証コマンド grant の使用方法:この記事の例は MySQL 5.0 以降で実行され...

MySQL IFNULL判定問題の解決方法

問題: mybatis によって返される null 型のデータが消え、フロントエンドの表示にエラーが...

JavaScript ファイルの読み込みとブロックの問題: パフォーマンス最適化のケーススタディ

まず質問させてください。HTML ページを作成するときに、外部から JS ファイルをインポートする場...

divの適応高さは残りの高さを自動的に埋めます

シナリオ 1: HTML: <div class="outer"> ...

Linux CentOS MySQL データベースのインストールと設定のチュートリアル

MySQLデータベースのインストールに関するメモ、みんなで共有a) MySQL ソースインストールパ...

インデックスを設計する際の原則は何ですか? インデックスの障害を回避するにはどうすればよいでしょうか?

目次主キーインデックス頻繁にクエリされるフィールドのインデックスを作成する大きなフィールドのインデッ...

この記事はJavaScriptの変数とデータ型を理解するのに役立ちます

目次序文:親切なヒント:変数1. 免責事項2. 譲渡3. 2つの小さな文法上の詳細変数の命名規則なぜ...

MySQLの比較演算子正規表現マッチングREGEXPの使用の詳細な説明

1. データを初期化する `test_01` が存在する場合はテーブルを削除します。 テーブル「te...

ウェブレスポンシブレイアウトにおけるiframe適応の方法

問題<br />レスポンシブ レイアウトでは、iframe 要素に注意する必要があります...

MySQL マルチバージョン同時実行制御 MVCC の実装

目次MVCCとはMVCC 実装MVCC はファントム リードを解決しますか? MVCCとはMVCC ...