メニュー横並びのいろいろ【float、table、flex】
横並びの方法はいろいろありますが、わたしはいつもdisplay:flex;
を使用しています。
まあ手軽だし使い慣れてきたし…と思ってたんですが、そろそろ他のやり方も研究しようと思って、float
とtable
パターンを作ってみました。
floatの場合
横幅はバラバラ。
float
解除が面倒。
親要素の::after
にclear:both
指定。
横幅が狭くなると崩れる。
あんまり調べてないので、崩れず表示できるのかもしれないですが。
See the Pen floatで横並びのメニュー by Micche (@micche) on CodePen.
追記:レイアウト崩れないver
li
のwidth
の値を%
にしました。
これにより、ウィンドウ幅が変わっても、一応変動してくれます。
See the Pen バリエーション floatで横並びのメニュー by Micche (@micche) on CodePen.
英数字は折り返し設定するとデザインが崩れるので、とりあえず横スクロールできるようにして回避。
それでもボーダーがへんなとこにきておかしいことになってますね。
小さい端末(スマホとか)は横メニューより、ハンバーガーメニューとかで縦の方がやっぱりよいかなあ。
tableの場合
綺麗に横幅揃う。
簡単。
メニュー自体を2行にするとかは難しいかも。
でもほとんどが1行メニューだから、関係ない?
See the Pen display:tableの練習-メニューを作る by Micche (@micche) on CodePen.
文字数多いと改行するので、文字が変なとこいっちゃいますが。
flex
利点はモバイルにも対応しやすいことだと思います。
display:flex;
をつけたら、モバイルの時は flex-direction:column;
で縦並び、PCの時はflex-direction:row;
で横並び。
見本は当ブログのメニューがそうですね。
あとでcode penにも載せておきますが今回はこのへんで。