音楽制作、Webデザイン(HTML,CSS,JavaScript)、プログラミング(Java,C,PHP)、日常の話題を集める「情報ターミナル」
ブログ内検索
最新記事
(06/29)
(06/29)
(06/24)
(06/22)
(06/22)
アンケート実施中です
カテゴリー
Creative Commons

当ブログのすべての コンテンツは クリエイティブ・コモンズ 表示 - 非営利 - 継承 2.1 日本 ライセンスの下に利用可能です。 他サイトからの引用につきましては、引用元サイトの権利に準拠します。
Step1. HTMLファイルにタグを記述するよ
下図のようにHTMLファイル(のbody内)に記述しよう。
<ul> <li><a href="#">My Dashbord</a></li> <li><a href="#">Likes</a></li> <li><a href="#">Views</a> <ul> <li><a href="#" class="documents">Documents</a></li> <li><a href="#" class="messages">Messages</a></li> <li><a href="#" class="signout">Sign Out</a></li> </ul> </li> <li><a href="#">Uploads</a></li> <li><a href="#">Videos</a></li> <li><a href="#">Documents</a> </ul> |
これはブラウザではこのように表示されるよ。

黒点がメニューの大まかなカテゴリ(メインメニュー)で、白点がさらに大カテゴリの中の細かいカテゴリ(サブメニュー)になっているね。ここからメインメニューを横に並べ、はじめ見えているのはメインのみで、マウスが重なるとサブメニューが開くようにしていくのだ。
Step2. メインメニューのレイアウトとデザインをするよ
HTMLファイルから呼び出すCSSファイルに、下図のように記述しよう。
.menu,
.menu ul,
.menu li,
.menu a {
margin: 0;
padding: 0;
border: none;
outline: none;
}
.menu {
height: 40px;
width: 505px;
background: #4c4e5a;
background: -webkit-linear-gradient(top, #4c4e5a 0%,#2c2d33 100%);
background: -moz-linear-gradient(top, #4c4e5a 0%,#2c2d33 100%);
background: -o-linear-gradient(top, #4c4e5a 0%,#2c2d33 100%);
background: -ms-linear-gradient(top, #4c4e5a 0%,#2c2d33 100%);
background: linear-gradient(top, #4c4e5a 0%,#2c2d33 100%);
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.menu ul{
display: none; }
.menu li {
position: relative;
list-style: none;
float: left;
display: block;
height: 40px;
}
|
あと、とりあえず、作業しやすいようにサブメニューは今は見えない状態にしておきたいので、緑の箇所を一時的に記述してあるよ。
ここまで記述すると、ブラウザの表示は下のようになる。

メニューバーはそれらしいけど、メインメニュー項目がくっついちゃっているね。
表記もまだ、ただの文字リンクっぽい。なので、ここをこれからさらにデザインして行くよ。
Step3. メインメニューのリンクのデザインをするよ
.menu li a {
display: block;
padding: 0 14px;
margin: 6px 0;
line-height: 28px;
text-decoration: none;
border-left: 1px solid #393942;
border-right: 1px solid #4f5058;
font-family: Helvetica, Arial, sans-serif;
font-weight: bold;
font-size: 13px;
color: #f3f3f3;
text-shadow: 1px 1px 1px rgba(0,0,0,.6);
-webkit-transition: color .2s ease-in-out;
-moz-transition: color .2s ease-in-out;
-o-transition: color .2s ease-in-out;
-ms-transition: color .2s ease-in-out;
transition: color .2s ease-in-out;
}
.menu li:first-child a { border-left: none; }
.menu li:last-child a{ border-right: none; }
.menu li:hover > a { color: #8fde62; }
|
マウスポインタがメニューリンク項目上に乗る(a:hover)と、文字色が黄緑になる(#8fde62)ように設定。
transition:colorというのは、色が入れ替わるときにパッと変わるのか、じわーっと変わるのかという時間変化の設定だね。
ここまでをブラウザで確認。下のようになっていればOK。

Step4. サブメニューをデザインするよ
まずは、さっき一時的に書いたこの行を削除しよう。
.menu ul{ display: none; } |
で、新しく下を書いて行くよ。
.menu ul {
position: absolute;
top: 40px;
left: 0;
opacity: 0;
background: #1f2024;
-webkit-border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px;
-webkit-transition: opacity .25s ease .1s;
-moz-transition: opacity .25s ease .1s;
-o-transition: opacity .25s ease .1s;
-ms-transition: opacity .25s ease .1s;
transition: opacity .25s ease .1s;
}
.menu li:hover > ul {
opacity: 1; }
.menu ul li {
height: 0;
overflow: hidden;
padding: 0;
-webkit-transition: height .25s ease .1s;
-moz-transition: height .25s ease .1s;
-o-transition: height .25s ease .1s;
-ms-transition: height .25s ease .1s;
transition: height .25s ease .1s;
}
.menu li:hover > ul li {
height: 36px;
overflow: visible;
padding: 0;
}
|
ここではサブメニューがパッと出るんじゃなく、にょろっと出るように、transition:opacityとtransition:heightで調節してあるよ。
Step5. サブメニューのリンクのデザインをするよ
.menu ul li a {
width: 100px;
padding: 4px 0 4px 40px;
margin: 0;
border: none;
border-bottom: 1px solid #353539;
}
.menu ul li:last-child a { border: none; }
|
Additional Code
次のように記述すると、サブメニュー内に背景を表示させることもできるよ。
urlには背景に使う画像の居場所をちゃんと指定しよう。
.menu a.documents {
background: url(../img/docs.png) no-repeat 6px center;
}
.menu a.messages {
background: url(../img/bubble.png) no-repeat 6px center;
}
.menu a.signout {
background: url(../img/arrow.png) no-repeat 6px center;
}
|
Step6. 完成!
こういう感じになるよ。

◆プレビュー・ファイルダウンロード
記事掲載元サイト(英語)でプレビュー、ファイルダウンロードができるよ。
プレビューを見る
ファイルをダウンロード
※Twitterでツイートするのがアンロックの条件。
(オリジナル記事:「How to Create a CSS3 Dropdown Menu [Tutorial]」)
PR
この記事にコメントする