--- title: background-size slug: Web/CSS/background-size tags: - Background - CSS - CSS プロパティ - CSS 背景と境界 - Reference - background-size translation_of: Web/CSS/background-size ---
{{CSSRef}}

background-sizeCSS のプロパティで、要素の背景画像の寸法を設定します。画像は自然な寸法になったり、引き伸ばされたり、利用可能な領域に収まるように縮小されたりします。

{{EmbedInteractiveExample("pages/css/background-size.html")}}

背景画像に覆われていない領域は {{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
縦横比が維持されるように、適切な方向に背景画像を拡大縮小します。
{{cssxref("<length>")}}
その軸が指定された長さになるよう画像を拡大縮小します。負の値は使用できません。
{{cssxref("<percentage>")}}
その軸が背景配置領域の指定された割合になるよう拡大縮小します。背景配置領域とは、 {{cssxref("background-origin")}} の値(既定ではパディングボックス)によって定められます。しかし、背景の {{cssxref("background-attachment")}} の値が fixed の場合、配置領域は{{glossary("viewport", "ビューポート")}}全体となります。負の値は使用できません。

固有の軸と比率

値の計算は画像の固有の寸法 (幅と高さ) と固有の比率 (幅と高さの比率) に依存します。属性は以下の通りです。

メモ: <gradient> の振る舞いは Gecko 8.0 {{geckoRelease("8.0")}} で変更されました。それより前は、固有の寸法がないものの、背景配置領域と同じ比率の画像として扱われていました。

メモ: Gecko では、 {{cssxref("element()")}} 関数を使用して作成された背景画像は要素の寸法、または要素が SVG の場合は背景配置領域の寸法を持つ画像として扱われ、適切な固有の比率を持ちます。これは非標準の振る舞いです。

固有の寸法と比率に基づき、背景画像の描画寸法は以下のようにして計算されます。

background-size の幅と高さがともに定義されていて auto でない場合
背景画像は指定の寸法で描画されます。
background-sizecontain または cover の場合
固有の比率を維持するため、画像は背景配置領域の中に収まるか、背景配置領域を覆うように描画されます。画像が固有の比率を持たない場合は、背景配置領域の寸法で描画されます。
background-sizeauto または auto auto の場合
メモ: SVG 画像には 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}}

ブラウザーの互換性

{{Compat("css.properties.background-size")}}

関連情報