LoginSignup
9
3

More than 5 years have passed since last update.

background-size: contain;を指定しても画像が縮小表示できない問題

Posted at

状況

Retina対応のために大きさ2倍の画像を使ってコーディングをしているとき、本来見せたい大きさに縮小して表示しようとした。

width: 30px; (表示したい大きさ)
background-size: contain;
background: url(img.png); (表示したいものの2倍の大きさ)

と指定しても効かない。

Developer Toolで見ても、上書きされて取り消し線が引かれている形跡がない。↓

スクリーンショット 2016-11-30 17.47.16.png

他のところは指定できているところもある。なぜ...とハマった。

解決法

以下のようにbackgroundbackground-sizeの指定の順番を入れ替えたら解決した。

background: url(img.png);
background-size: contain;

確認したところ、backgroundプロパティは
background-clip
background-color
background-image
background-origin
background-position
background-repeat
background-size
background-attachment
のプロパティをまとめて指定できるため、
background-sizeプロパティがbackground-size: auto auto;で上書きされてしまうようだ。
MDN(英語版)にも初期値はautoと明記してある。日本語版から確認したが、日本語版にはこのような説明はないようだった。
スクリーンショット 2016-11-30 18.05.02.png

原理を考えたら納得できるが、Developer Toolでは上書きされていないように表示されているので、要注意。
スクリーンショット 2016-11-30 18.00.23.png

忘れないようにしたい。

参考

まぼろしの小林さんのブログ
https://maboroshi.biz/clearskysource/?p=642
MDN英語
https://www.w3.org/TR/2014/CR-css3-background-20140909/

9
3
2

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
9
3