HTMLとCSSだけ!ドロップダウンメニューの実装方法
ウェブサイトのナビゲーションメニューは重要な要素の一つです。この記事では、HTMLとCSSだけを使用してシンプルなドロップダウンメニューを作成する手順を説明します。
デモ
See the Pen dropdown-menu by hide (@hide225) on CodePen.
HTMLの設定
まず、HTMLに基本的な構造を組みます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ドロップダウンメニュー</title>
</head>
<body>
<header>
<ul class="header__list">
<li class="header__item"><a href="#">HOME</a></li>
<li class="header__item">
<a href="#">Service</a>
<ul class="dropdown__list">
<li class="dropdown__item"><a href="#">Service-1</a></li>
<li class="dropdown__item"><a href="#">Service-2</a></li>
<li class="dropdown__item"><a href="#">Service-3</a></li>
</ul>
</li>
<li class="header__item">
<a href="#">About</a>
<ul class="dropdown__list">
<li class="dropdown__item"><a href="#">About-1</a></li>
<li class="dropdown__item"><a href="#">About-2</a></li>
<li class="dropdown__item"><a href="#">About-3</a></li>
</ul>
</li>
<li class="header__item">
<a href="#">Profile</a>
<ul class="dropdown__list">
<li class="dropdown__item"><a href="#">Profile-1</a></li>
<li class="dropdown__item"><a href="#">Profile-2</a></li>
<li class="dropdown__item"><a href="#">Profile-3</a></li>
</ul>
</li>
<li class="header__item"><a href="#">Contact</a></li>
</ul>
</header>
</body>
</html>
CSSの設定
見栄えを良くするために、CSSでスタイルを追加します。以下は基本的なスタイルの例です。
仕組みとしては、ドロップダウンは初期状態を’display: none;’で非表示にし、
親要素がホバーされた時に’display: block;’で表示します。
ul {
list-style: none;
padding:0;
}
.header__list {
display: flex;
}
.header__item {
width: 20%;
height: 60px;
background-color: #efefef;
position: relative;
transition: all ease .3s;
}
.header__item:hover {
background-color: #333;
}
.header__item:not(:first-child)::before {
content: "";
width: 1px;
height: 100%;
background-color: #fff;
position: absolute;
top: 0;
left: 0;
transition: all ease .3s;
}
.header__item:hover::before {
background-color: #fff;
}
.header__item a {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
text-decoration: none;
color: #333;
font-weight: bold;
font-size: 1rem;
transition: all ease .3s;
}
.header__item:hover a {
color: #fff;
}
/*
ドロップダウンメニュー
*/
.dropdown__list {
display: none;
width: 100% ;
position: absolute;
top: 60px;
left: 0;
}
.header__item:hover .dropdown__list {
display: block;
}
.dropdown__item {
background-color: #333;
height: 60px;
transition: all ease .3s;
position: relative;
}
.dropdown__item:not(:first-child)::before{
content: "";
width: 100%;
height: 1px;
background-color: #fff;
position: absolute;
top: 0;
left: 0;
}
.dropdown__item:hover {
opacity: .7;
}
.dropdown__item a {
display: flex;
justify-content: center;
align-items: center;
color: #fff;
text-decoration: none;
position: relative;
}
.dropdown__item a::after {
content: '';
display: block;
width: 7px;
height: 7px;
border-top: 2px solid #fff;
border-right: 2px solid #fff;
transform: rotate(45deg);
position: absolute;
right: 15px;
top: calc(50% - 5px);
}
これで、シンプルなHTMLとCSSだけでドロップダウンメニューを実装しました。各メニューにマウスをホバーすると、サブメニューが表示されます。
このコードを使って、自分のウェブサイトにドロップダウンメニューを追加してみてください。
関連記事
-
WordPressのログイン画面をカスタマイズしよう!
WordPressのログイン画面をカスタマイズする方法を解説しま ...
-
Emmet記法:HTML/CSSコーディングを劇的に加速する神秘の atelier
この記事では、Emmetの基本的な概念と使い方、および便利なショ ...
-
Swiper.js基本的な使い方カスタマイズ方法
この記事では、Swiper.jsを使用してブログ記事のスライダー ...
-
jQueryを使ったスムーススクロールの実装
この記事では、jQueryを使用してこのスムーススクロールを簡単 ...
-
サイトを魅力的に!Wow.jsで簡単アニメーションの追加
この記事では、Wow.jsを使用してウェブサイトにアニメーション ...
-
jqueryは不要!アコーディオン実装方法
今回は、初心者の方に向けて、jQueryを使わずにシンプルなアコ ...