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だけでドロップダウンメニューを実装しました。各メニューにマウスをホバーすると、サブメニューが表示されます。
このコードを使って、自分のウェブサイトにドロップダウンメニューを追加してみてください。
関連記事
-
CSS + jQueryハンバーガメニュー実装方法
この記事では、CSSとjQueryを使用して、簡単かつ効果的にハ ...
-
Emmet記法:HTML/CSSコーディングを劇的に加速する神秘の atelier
この記事では、Emmetの基本的な概念と使い方、および便利なショ ...
-
サイトを魅力的に!Wow.jsで簡単アニメーションの追加
この記事では、Wow.jsを使用してウェブサイトにアニメーション ...
-
jQueryを使ったスムーススクロールの実装
この記事では、jQueryを使用してこのスムーススクロールを簡単 ...
-
手軽なキャッシュ回避!CSSファイルにパラメータを追加してサイト修正を簡単に
サイトの修正作業でブラウザのキャッシュが邪魔になることはよくある ...
-
WordPressのログイン画面をカスタマイズしよう!
WordPressのログイン画面をカスタマイズする方法を解説しま ...