はじめに
スマホでよく見るようなドロップダウンメニューを作る。
jQueryを使えば簡単に実装することができる。
HTML
以下のコードを<head>に書いてjQueryを読み込む
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<header>は画面上部に表示されるメニューバー、<header>内部の<nav>がドロップダウンメニューの中身になる。
<ul>がメニューのリスト。<li>がそれぞれのメニューを示している。
#menu_buttonを押すと<ul>が開閉するように実装する。
<main>はメインコンテンツを示す。
<header>
	<div class="menu_button"><span>menu</span></div>
    <nav class="nav">
		<ul>
	    	<li>メニュー1</li>
	    	<li>メニュー2</li>
	    	<li>メニュー3</li>
		</ul>
    </nav>
</header>
<main>
    <div style="width: 50%; height:1000px; background-color: #aaa; margin: 0 auto;">
		メイン
    </div>
</main>
メニューの基本構造
<hearder>の高さを定めてその分だけ<nav>と<main>を下に配置する。
以下の例ではheightを40pxにしている。
<nav>と<main>のpositionをabsoluteに設定して、topをそれぞれ100%, 40pxとした。
<nav>は<header>の内部にあるので100%と設定すれば<header>の下に配置される。
また常にメニューバーを表示させるためにpositionをfixed、z-indexを大きな値である1000にしている。
header {
    height: 40px;
    z-index: 1000;
    position: fixed;
}
header nav {
    position: absolute;
    top: 100%;
}
main {
    position: absolute;
    top: 40px;
}
デザイン
デザインは以下のとおり。
これでドロップダウンメニューが開かれた状態が表示される。
header {
    background-color: #111;
    color: white;
    width: 100%;
}
header .menu_button {
    border-left: solid 1px white;
    float: right;
    width: 70px;
    height: 100%;
    text-align: center;
}
header .menu_button span {
    line-height: 40px;
}
header nav {
    background-color: #111;
    color: white;
    width: 100%;
}
header nav ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
header nav ul li:first-child {
    border-top: solid 1px white;
}
header nav ul li {
    border-bottom: dotted 1px white;
    text-align: center;
    padding: 1em;
}
main {
    width: 100%;
}
jQueryによるドロップダウンの実装
初期設定として.navのdisplayをnoneにしてメニューが閉じた状態にする。
.menu_buttonのクリック時に$(".nav").slideToggle()が実行されるようにして完成。
$(function() {
    $(".nav").css("display","none");
    $(".menu_button").on("click", function() {
		$(".nav").slideToggle();
    });
});