4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Flexboxでレイアウトした画像がChrome・Safariで表示されたりされなかったりするとき

Last updated at Posted at 2017-01-26

flexbox便利ですね。カチッと指定しなくても良い感じになってくれるし、適当にやってもなんとなくうまいこと並ぶし。
中にどんな大きさの画像やテキストが入るかわからない要素をレイアウトするときなどに重宝します。

が。時にflexboxには深い闇が潜んでおります。
flexアイテムとして指定したimgタグの縦横比を固定するために安易にheight: 100%などと指定してはなりません。

一見問題なく縦横比が固定されたように見えますが、真の恐怖は遅れてやってくるのです。

それはリモート環境でのみ起こる…再現性の低いバグ…
PCのChromeとSafariでのみ、ページを開いたときに画像が表示されたり……されなかったり……
画像データはロードされ、そこにあるはずなのに、imgタグのheightが0となっていて表示されない…

そんなことが起こります。

Flexアイテムに指定したimg要素の高さが伸びたりするのは、flexコンテナのalign-itemsがデフォルトでstretchになっているからです。
これをflex-startなり、centerなりの適当な値にセットしてあげると縦横比は崩れず表示されます。

仕組みを理解して使えばとても便利なFlexbox… ご利用は計画的に…(2日間悩みました)

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?