flexのおすすめポイント

flexのおすすめポイント

そろそろ今年のアドベントカレンダーに向けて動き出そうかと思っているyanagimachiです。
去年もバシャログでアドベントカレンダーをやろうと思っていたのですが、バックエンドエンジニアとフロントエンドエンジニア、デザイナーがみんな参加できるお題が考えつかずに断念してしまいました。どんなものがいいんでしょうね・・・(´-`)

さて、今回はflexをまだ始めていない人・始めて間もない人がflexをたくさん使いたくなるような、おすすめポイントを紹介していきたいと思います。

table-cellだと使えないアレが使えます!

marginが使えます

画像とテキストが横並びになるようなコンテンツで、間に隙間がある時がありますよね。
今まではtable-cellを使っていたので、marginではなくpaddingを使っていたと思いますが、flexだとmarginが使えます。CSSだけで対応できるデザインの幅が広がりますね!

中のコンテンツにposition: absoluteが使えます・・・と思ったら?

tableの中でposition: absoluteが使えない・・・と記憶していたのですが、試してみたらできました。古いバージョンのブラウザだけだったのでしょうか・・・
NEWマークやアイコンなどを出したいときにも便利です、と言いたかったのですが。
ただIE11だと多少ズレがあるようです。
tableのtdではflex同様に表示ができました。

デモ

高さ揃えができる

ナビやボタンの高さ揃えが楽々

部分的に2行のナビやボタン、今までかなり苦労してきたと思います。
table-cellだと中央ぞろえはできても高さが揃えられないので、高さ揃えのjsを使ったり、line-heightを部分的に変えたりして、a要素の高さを揃えたかと思います。
flexだと割と簡単にできちゃうので、作業の時短にもなります。

リスト系も高さ揃えが楽々

全ての要素の高さを揃える、なんて要望でなければこちらも高さ揃えのjsを入れることなく、対応できます。
画像+タイトル+テキストという簡単なものだけでなく、ボタンの位置を合わせるのもできちゃいます。この時はテキスト部分(.text)をflex:1ではなく

.text {
    flex: 1 0 auto;
}

とするのがキモです。 これでIE11でも同様の表示にできます。

デモ

 こんな謎なレイアウトにも対応できちゃいます。

メモしていたので何かに使ったか使う予定だったと思うんですが、記憶にないです・・・
一体なんのレイアウトだったんでしょうか。


ということで、flexのおすすめポイントのご紹介でした。
また便利な使い方があったらご紹介します。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ