CSS3 Flexboxを利用したナビゲーションメニューのサンプル

Bootstrap 環境構築 素材

最新ブラウザで利用できるCSS3 flexbox を利用した、ナビゲーションメニューのサンプルを作成しました。

・メニューは均等配置になります。

・リンクテキストが複数行になっても、要素の縦方向センター揃えになるようになっています。

Flexbox ナビゲーションメニュのサンプル

まずは html から。Bootstrap 3.x に配置した場合

<div class="container">
 <div class="row">
 <div class="col-sm-12">
 <ul class="test">
 <li><a href="">メニュー1</a></li>
 <li><a href="">メニュー2メニュー2</a></li>
 <li><a href="">メニュー3メニュー3メニュー3</a></li>
 <li><a href="">メニュー4</a></li>
 <li><a href="">メニュー5</a></li>
 <li><a href="">メニュー6</a></li>
 </ul>
 </div>
 </div>
</div>

 

続いて CSS 。
リンク<a> を display:inline-flex; にすることで、縦方向センター揃えを実現しています。

<style>
 .test{
 margin: 0;
 padding: 0;
 list-style: none;
 width: 100%;
 display:flex;
 flex-wrap: nowrap;
 justify-content: space-around;
 align-items: stretch;
 }
 .test li {
 width:100%;
 border-left:solid 1px #ededed;
 }
 .test li:last-child {
 width:100%;
 border-right:solid 1px #ededed;
 }
 
 .test li a{
 display:inline-flex;
 width: 100%;
 height: 100%;
 align-items: center;
 justify-content: center;
 padding:10px 6px;
 transition: ease 0.2s;
 }
 
 .test li a:hover {
 text-decoration: none;
 background:#666;
 color: #fff;
 }
</style>