[CSS]ごくシンプルなHTMLとCSSで実装するアニメーションがかっこいいメガメニューのデモ
Post on:2014年2月5日
最小限のシンプルなHTMLとCSSで実装する、アニメーションで表示されるメガメニューのデモを紹介します。
デモは46行のHTML、80行のCSSだけで実装されています。
Chrome, Safari, Firefoxでご覧ください。
左上のアイコンをクリックすると、メガメニューがかっこいいアニメーションで表示されます。
デモ:Mega Menuオープン時
HTML
HTMLは、トリガーとなるチェックボックス、メガメニューのリスト、コンテンツ、の3つで構成されています。
デモのコードをシンプルにしてみました。
<input type="checkbox" id="nav"> <label for="nav" class="entypo-menu"></label> <nav> <ul> <h2>カテゴリ</h2> <li><a href="#">アイテム</a></li> <li><a href="#">アイテム</a></li> <li><a href="#">アイテム</a></li> </ul> <ul> <h2>カテゴリ</h2> <li><a href="#">アイテム</a></li> <li><a href="#">アイテム</a></li> <li><a href="#">アイテム</a></li> </ul> <ul> <h2>カテゴリ</h2> <li><a href="#">アイテム</a></li> <li><a href="#">アイテム</a></li> <li><a href="#">アイテム</a></li> </ul> </nav> <div id="content"> コンテンツ </div>
CSS
CSSの80行にはフォントカラーなどのスタイルも含まれているので、メガメニューのスタイルだけにするさらに少なくなります。
@import url(http://weloveiconfonts.com/api/?family=entypo); @import url(http://fonts.googleapis.com/css?family=Roboto:100); [class*="entypo-"]:before { font-family: 'entypo', sans-serif; } nav { /* EDIT HERE FOR A DIFFERNET EFFECT */ transform: translate3d(0,-125%,0); } body { font-family:'HelveticaNeue-Light', Roboto; background:#34aadc; color:#fff; } input[id*="nav"] { display:none; } input[id*="nav"] + label { display:block; color:#fff; width:45px; height:45px; text-align:center; line-height:45px; font-size:27px; cursor:pointer; user-select:none; transition:1s; z-index:1; position:absolute; } input[id*="nav"]:checked + label { color:#34aadc; } nav { position:absolute; top:0; left:0; width:100%; height:100%; background:#333; z-index:0; transition:.6s; backface-visibility:hidden; } input[id*="nav"]:checked ~ nav { transform: translate3d(0,0,0); } nav ul { float:left; padding-top:70px; padding-bottom:20px; width:33.3%; } nav ul h2 { padding:0 0 20px 70px; font-size:24px; color:#34aadc; } nav ul li { padding:4px 20px 4px 70px; } nav ul li a { color:#fff; text-decoration:none; font-size:14px; transition:.2s; } nav ul li a:hover { color:#34aadc; } #credits { position:absolute; bottom:50px; left:70px; color:#F33D6C; } #content { padding:100px 70px; font-size:51px; }
sponsors