
サイトのグローバルメニューをおもしろくしてみたい!
動きがあったほうがおもしろいんじゃね?
というわけで作ってみました。
[codepen_embed height=”424″ theme_id=”13407″ slug_hash=”dWvYrX” default_tab=”result” user=”sagayama”]See the Pen flex by mitsuki sagayama (@sagayama) on CodePen.[/codepen_embed]
Codepenでは分からづらい方のために抜粋します。
html
<div class="accordion">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">News</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Contant</a></li>
</ul>
</div>CSS
.accordion {
width: 700px;
margin: 1em auto;
}
.accordion ul {
display: flex; //here
}
.accordion ul li {
width: 100%; //here
transition: all .5s; //here
}
.accordion ul li a {
display: block;
text-decoration: none;
text-align: center;
padding: 1em 0;
color: #777;
border: 1px solid #777;
border-left: 0;
transition: all .5s;
}
.accordion ul li a:hover {
background: #777;
color: #fff;
}
.accordion ul li:hover {
width: 200%; //here
}
.accordion ul li:first-child a {
border-left: 1px solid #777;
}とこんな感じです。
CSSは適当に変更してみてください。
コメントの「//here」さえ消さなければ基本的な動きはすると思います。←適当
まとめ
Can I use…を見てみると display:flex; はEdgeを含め現行のモダンブラウザでは問題なく利用できるようです。
Flexboxは要素を横並びにできるだけじゃなく、高さも揃えてくれるのでグローバルメニューのデザインに向いているじゃないかと勝手に思ってます。
ただIE8~9が対応してないので、この辺をどう考えるかですね。
調べてみたところ、IE対策のために「flexibility.js」という便利なものもあるようなので試してみるのもいいかも。←他人まかせ



