デザイン

デザイン

PR

【わかりやすい!】素朴なCSSドロップダウンメニューの作り方

LINE25

Line25 was built in March 2009 as a place to share web design ideas and inspiration through articles, tutorials and examples of stunning site designs.

本記事は、How To Create a Pure CSS Dropdown Menu
翻訳・再構成したものです。
配信元または著者の許可を得て配信しています。

3,929 views

読了時間 : 約6分7秒

高機能なセレクターをお持ちであれば、ドロップダウンメニューは簡単作ることができます。好きなCSS3プロパティを入れてみると、背景画像やJavaScriptでしか得るこのできなかったデザインを作り出せます。下記のチュートリアル通りにCSSドロップダウンメニューを作ってみてください。

 

メニューを開くと、2つのサブカテゴリも開きます。最初のサブリンクはメインナビゲーションバーに下に現れ、2番目は最初のドロップダウンから垂直に伸びています。CSSドロップダウンメニューのデモ動画を見てみて早速行動に移りましょう。

 

HTML構造

 

<nav>
	<ul>
		<li><a href="#">Home</a></li>
		<li><a href="#">Tutorials</a></li>
		<li><a href="#">Articles</a></li>
		<li><a href="#">Inspiration</a></li>
	</ul>
</nav>

まず第1に、CSSメニューのためにHTMLを作成する必要があります。HTML5を使い、ナビゲーションメニューを〈nav〉要素に組織します、そしてはじめのナビゲーションリンクをシンプルなリストに加えます。

 

<nav>
	<ul>
		<li><a href="#">Home</a></li>
		<li><a href="#">Tutorials</a>
			<ul>
				<li><a href="#">Photoshop</a></li>
				<li><a href="#">Illustrator</a></li>
				<li><a href="#">Web Design</a></li>
			</ul>
		</li>
		<li><a href="#">Articles</a>
			<ul>
				<li><a href="#">Web Design</a></li>
				<li><a href="#">User Experience</a></li>
			</ul>
		</li>
		<li><a href="#">Inspiration</a></li>
	</ul>
</nav>

 

はじめのサブメニューをTutorialsの下とArticlesのリンクの下に入れ、〈Li〉と打ち込むことでメニューが完成します。

 

<nav>
	<ul>
		<li><a href="#">Home</a></li>
		<li><a href="#">Tutorials</a>
			<ul>
				<li><a href="#">Photoshop</a></li>
				<li><a href="#">Illustrator</a></li>
				<li><a href="#">Web Design</a>
					<ul>
						<li><a href="#">HTML</a></li>
						<li><a href="#">CSS</a></li>
					</ul>
				</li>
			</ul>
		</li>
		<li><a href="#">Articles</a>
			<ul>
				<li><a href="#">Web Design</a></li>
				<li><a href="#">User Experience</a></li>
			</ul>
		</li>
		<li><a href="#">Inspiration</a></li>
	</ul>
</nav>

 

2番目のサブメニューをはじめのサブメニューのWeb Designセクションの下におきます。このリンクはまたリストに配置され、Web Designのセクションに挿入されます。

ここまでやってみるときちんとしたリンクを持つサブメニューを作り出すことができます。

 

CSSのスタイル

 

nav ul ul {
	display: none;
}

	nav ul li:hover > ul {
		display: block;
	}

 

ドロップダウン機能を働かせるためにCSSを使いましょう。CSSの特異性と高機能なセレクターによって無駄なidやクラスなしに特定のHTMLを探し当てることができます。まずサブメニューを隠すためにULdisplay:noun;を使います。再度表示させるには、LIの要素をまたブロックする必要があります。〉のセレクターによって、サブメニューを全て表示させることなく、子機のULだけがターゲットされるようにしましょう。

 

nav ul {
	background: #efefef; 
	background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);  
	background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%); 
	background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%); 
	box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
	padding: 0 20px;
	border-radius: 10px;  
	list-style: none;
	position: relative;
	display: inline-table;
}
	nav ul:after {
		content: ""; clear: both; display: block;
	}

 

そしてメインのナビゲーションメニューに取り掛かることができます。傾斜やボックスシャドウ、ボーダー記号などのCSS3プロパティを使います。position:relative;を加えることによって、メインメニューバーにサブメニューバーを設置することができ、display:inlin-tableによってちょうどいいサイズのメニューに縮めてくれます。クリアフィックスがoverflow:hiddenを使う必要なく、サブメニューが表示されなくなるのを阻止してくれます。

 

nav ul li {
	float: left;
}
	nav ul li:hover {
		background: #4b545f;
		background: linear-gradient(top, #4f5964 0%, #5f6975 40%);
		background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%);
		background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%);
	}
		nav ul li:hover a {
			color: #fff;
		}
	
	nav ul li a {
		display: block; padding: 25px 40px;
		color: #757575; text-decoration: none;
	}

 

個別のメニューは〈Li〉を加えたCSSによってデザインされます。ブラウザの中にリンクを作り上げ、青色の背景と白色のテキストに変えます。

 

nav ul ul {
	background: #5f6975; border-radius: 0px; padding: 0;
	position: absolute; top: 100%;
}
	nav ul ul li {
		float: none; 
		border-top: 1px solid #6b727c;
		border-bottom: 1px solid #575f6a;
		position: relative;
	}
		nav ul ul li a {
			padding: 15px 40px;
			color: #fff;
		}	
			nav ul ul li a:hover {
				background: #4b545f;
			}

 

メインメニューバーは出来上がりましたが、サブメニューには少し修正が必要です。メニューバーと少しスタイルが似ているので背景とボーダーをなくし、別のものを配置することでもっといいデザインとなります。ちゃんとメニューバーの下に表示させるにはULの一番上に配置されなければなりません。

 

ULのそれぞれのLIは隣に浮いている必要はありません。代わりに垂直に配置され、細い線で互いから分かれているのがベストです。素早い移動エフェクトによって背景を暗くすることによってさらに良くなります。

 

nav ul ul ul {
	position: absolute; left: 100%; top:0;
}

 

最後のステップはサブメニューのさらにサブメニューを配置することです。サブメニューの特徴を受け継ぎ、ちゃんと〈Li〉右側に配置されればいいだけとなります。

 

完成した素朴なCSSドロップダウンメニュー

おすすめ新着記事

おすすめタグ