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

推薦する

docker を使用して Redis マスター/スレーブを構築する方法

1. Docker環境を構築する1. Dockerfileを作成する Centos:latest か...

MySQL InnoDB の重要なコンポーネントの概要

Innodbには以下のコンポーネントが含まれています1. innodb_buffer_pool:これ...

CentOS 7 で MySQL 8 の複数のインスタンスを設定する詳細なチュートリアル (必要な数だけ設定できます)

原因最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使...

Vueは質問応答機能を実装する

1. リクエスト回答インターフェース2. ユーザーの回答が正しいかどうかを判断します。回答が正しい場...

Vue3+Vue-cli4 プロジェクトで Tencent スライダー検証コードを使用する方法

導入:従来の画像検証コードと比較して、スライダー検証コードには次の利点があります。サーバーは検証コー...

LinuxシステムのAnsible自動運用保守導入方法

Ansible は、Python をベースに開発された新しい自動運用・保守ツールです。 多くの古い運...

ウェブページの要素の検査とソースコードの表示の違いについて

Chrome ブラウザで Web ページを開くと、ページを右クリックすると 2 つの非常によく似たオ...

Mysql WorkBench のインストールと設定のグラフィックチュートリアル

この記事では、Mysql WorkBenchのインストールと設定のグラフィックチュートリアルを参考ま...

JavaScript関数の詳細な紹介

任意の数のステートメントを関数を通じてカプセル化することができ、いつでもどこでも呼び出して実行できま...

DockerはRedis5.0をビルドし、データをマウントします

目次1. 永続データの簡単なマウント2. DockerFileでイメージをビルドし、設定ファイルを指...

Nginx+tomcat ロードバランシングクラスタの実装方法

実験環境は以下のとおりですここでは、4 台のサーバー (1 台の nginx、負荷用の 2 台の t...

Vue3.0 手書きカルーセル効果

この記事では、Vue3.0の手書きカルーセル効果の具体的なコードを参考までに共有します。具体的な内容...

詳細なアイデアを備えたシンプルな計算機の HTML 実装

コードをコピーコードは次のとおりです。 <!DOCTYPE html> <html...

MySQL で 2 つのテーブルをクエリする場合の from と join の違いの概要

序文MySQL では、複数テーブル結合クエリは非常に一般的な要件です。複数テーブルクエリを使用する場...