純粋な 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は1行のコマンドでFTPサービス構築の実装を完了します

1行のコマンド docker run -d \ -v /share:/home/vsftpd \ -...

Dockerで新しいイメージを手動で構築する方法

この記事では、Docker で新しいイメージを手動で構築する方法を紹介し、皆さんと共有します。詳細は...

MySQL テーブルの読み取り、書き込み、インデックス作成、その他の操作の SQL ステートメントの効率最適化の問題を分析します。

前回は、Explain 実行プランの表示、インデックスの分析など、MySQL での SQL クエリの...

mysqlはコンマに基づいてデータ行を複数の行に分割します

目次分離効果コマンドラインの説明関与する機能分離効果-- 別居前1,2,3,4 -- 別居後1 2 ...

CSS はモバイル互換性の問題を解決するために 0.5px の線を実装します (推奨)

【コンテンツ】: 1.背景画像のグラデーションスタイルを使用する2. スケールを使ってズームできる...

Vite と Vue CLI の長所と短所

Vue エコシステムには Vite と呼ばれる新しいビルド ツールがあり、Vue CLI よりも 1...

マークアップ言語 - 簡略化されたタグ

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

HTTP ステータス コード

このステータス コードは、リクエストのステータスに関する情報を提供し、サイトとリクエストされたページ...

Nginx コンテンツ キャッシュと共通パラメータ設定の詳細

使用シナリオ:プロジェクトのページでは、頻繁に変更されず、個別のカスタマイズも伴わない大量のデータを...

さまざまなブラウザでのhrタグの説明

通常、人事担当者と会うことはめったにありませんが、一度会うと、それが生死を分けることもあります。 H...

広告を閉じる効果を実現するJavascript

参考までに、Javascript を使用して広告を閉じる方法に関するケース スタディを示します。詳細...

Nginx Rewrite の使用シナリオとコード例の詳細な説明

Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....

Ubuntu Linux に Git と GitHub をインストールして使用する

Git 入門Git は、Linux(R) カーネル開発の管理を支援するために 2005 年に Lin...

js、css、htmlはブラウザのさまざまなバージョンを決定します

正規表現を使用してIEブラウザのバージョンを判別するIEブラウザかどうか確認するif (docume...

CentOS VPS に SSH 経由で MySQL をインストールする方法

yum install mysql-serverと入力します。続行するにはYを押してくださいインスト...