--- title: background-size slug: Web/CSS/background-size tags: - Background - CSS - CSS プロパティ - CSS 背景と境界 - Reference - background-size translation_of: Web/CSS/background-size ---
background-size
は CSS のプロパティで、要素の背景画像の寸法を設定します。画像は自然な寸法になったり、引き伸ばされたり、利用可能な領域に収まるように縮小されたりします。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
背景画像に覆われていない領域は {{cssxref("background-color")}} プロパティで埋められ、背景画像の後ろに見える背景色は透過性があります。
/* キーワード値 */ background-size: cover; background-size: contain; /* 値1つの構文 */ /* 画像の幅 (高さは 'auto' になる) */ background-size: 50%; background-size: 3.2em; background-size: 12px; background-size: auto; /* 値2つの構文 */ /* 1番目の値は画像の幅、2番目の値は高さ */ background-size: 50% auto; background-size: 3em 25%; background-size: auto 6px; background-size: auto auto; /* 複数の背景 */ background-size: auto, auto; /* 'auto auto' と混同しないでください */ background-size: 50%, 25%, 25%; background-size: 6px, auto, contain; /* グローバル値 */ background-size: inherit; background-size: initial; background-size: unset;
background-size
プロパティは以下のいずれか1つの方法で指定します。
contain
または cover
のキーワード値を使用auto
になります。auto
のいずれかになります。複数の背景画像の寸法を指定するには、それぞれの値をカンマで区切ってください。
contain
cover
auto
fixed
の場合、配置領域は{{glossary("viewport", "ビューポート")}}全体となります。負の値は使用できません。値の計算は画像の固有の寸法 (幅と高さ) と固有の比率 (幅と高さの比率) に依存します。属性は以下の通りです。
メモ: <gradient>
の振る舞いは Gecko 8.0 {{geckoRelease("8.0")}} で変更されました。それより前は、固有の寸法がないものの、背景配置領域と同じ比率の画像として扱われていました。
メモ: Gecko では、 {{cssxref("element()")}} 関数を使用して作成された背景画像は要素の寸法、または要素が SVG の場合は背景配置領域の寸法を持つ画像として扱われ、適切な固有の比率を持ちます。これは非標準の振る舞いです。
固有の寸法と比率に基づき、背景画像の描画寸法は以下のようにして計算されます。
background-size
の幅と高さがともに定義されていて auto
でない場合background-size
が contain
または cover
の場合background-size
が auto
または auto auto
の場合contain
が指定された場合のように描画されます。preserveAspectRatio
属性があり、既定では contain
と同等です。 Firefox 43 では、 Chrome 52 とは対照的に、明確に background-size
が設定されると preserveAspectRatio
が無視されます。background-size
の一方が auto
でもう一方が auto
ではない場合メモ: 固有の寸法や比率を持たないベクター画像の背景の拡大縮小は、まだすべてのブラウザーで完全に実装されているわけではありません。上記に記述した振る舞いに注意し、結果が適切であるかを複数のブラウザーで確認してください。
{{csssyntax}}
例については Scaling background images を参照してください。
背景としてグラデーションを定義し、background-size
をそれにあわせて定義した場合には、単独の auto を使うサイズを指定しないか、width 値だけを使って定義するのがよいでしょう (例えば background-size: 50%
)。こういった場合のグラデーションの描画方法は Firefox 8 で変更され、現在のところ CSS3 の background-size
仕様 や CSS3 の Image Values gradient 仕様 に完全準拠した描画方式をすべて実装していない他ブラウザと、たいていは一致しません。
.gradient-example { width: 50px; height: 100px; background-image: linear-gradient(blue, red); /* 利用が安全ではない */ background-size: 25px; background-size: 50%; background-size: auto 50px; background-size: auto 50%; /* 利用可能 */ background-size: 25px 50px; background-size: 50% 50%; }
なお、 <gradient>
に対してピクセルの寸法と auto
を利用することは推奨されません。 Firefox の 8 より前と、 Firefox 8 のレンダリングを実装していないブラウザーでは、背景が指定されている要素の正確な寸法が分からないと、レンダリングできないからです。
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('CSS3 Backgrounds', '#the-background-size', 'background-size')}} | {{Spec2('CSS3 Backgrounds')}} | 初回定義 |
{{cssinfo}}
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。
{{Compat("css.properties.background-size")}}