純粋な 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) のインストールの完全かつ詳細なチュートリアル

推薦する

MySQL で不明なフィールド名を回避する方法

序文この記事では、DDCTF の 5 番目の質問、つまり不明なフィールド名をバイパスする手法を紹介し...

純粋な CSS ヘッダーの実装コードを修正

純粋な CSS で固定ヘッダーを実装するのが難しい主な理由は 2 つあります。まず、最大のシェアを持...

VMware 仮想マシンに Centos7.3 をインストールするチュートリアル図

VMware の準備 CentOS の準備、こちらは CentOS 7.3 CentOS-7-x86...

MySQL 8.0.11 MacOS 10.13 のインストールと設定方法のグラフィックチュートリアル

MacにMySQLデータベースをインストールし、環境変数を設定する手順を参考までに記録します。具体的...

MySQL データベース データのロード 複数の用途

目次MySQL Load Dataの多様な用途1. LOAD の基本的な背景2. 基本パラメータをロ...

Dockerコミットの使い方の詳しい説明

場合によっては、ベースイメージに特定の依存関係をインストールする必要があります。Dockerfile...

Linuxファイル削除後にスペースが解放されない問題の詳しい説明

序文システム領域の使用量が大きすぎて消去する必要がある場合、または特定のファイルを消去する必要がある...

スライダー検証コードを実装するJavaScript

この記事では、スライダー検証コードを実装するためのJavaScriptの具体的なコードを参考までに共...

Node.jsミドルウェアの仕組みの詳細な説明

目次Express ミドルウェアとは何ですか? Expressミドルウェアを作成するための要件Exp...

JavaプログラミングでJavaScriptの超実用的なテーブルプラグインを書く

目次効果ドキュメント最初のステップステップ2ステップ3ソースコード効果ドキュメント最初のステップta...

Dockerイメージ内のnoneイメージ操作を削除する

普段はdocker buildコマンドでイメージを生成していますが、コードの更新が頻繁に行われるとn...

sqlite を mysql スクリプトに移行する方法

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 パーレル # # https:/...

MySQL 全文あいまい検索 MATCH AGAINST メソッドの例

MySQL 4.x 以降では、全文検索 MATCH ... AGAINST モード (大文字と小文字...

WeChatミニプログラムページ間の価値転送を実装する方法の例

ミニプログラムページ間で値を渡すみなさんこんばんは。こんばんはと言うのは、これを夜に書いたからです。...

Reactはルーティングを使用してログインインターフェースにリダイレクトします

前回の記事では、webpack と react 環境を設定した後、ログイン インターフェースとその後...