background-size プロパティ

background-size プロパティは、背景画像のサイズを設定します。プロパティの値は、任意のサイズ単位、またはキーワード auto、cover、contain です。

構文

cssセレクター {
  background-size: 値;
}

キーワード

値 説明
auto 背景は、背景画像の実際のサイズである自然なサイズになります。 一方のサイドにのみ auto が指定された場合、そのサイドでは比率を歪ませずにスケーリングされます。
cover 比率を維持したまま、画像が要素全体を覆うようにスケーリングします。 画像全体が収まるように努力されますが、常に可能とは限らないため、画像の一部が切り取られることがあります。 要素は常に画像で完全に覆われます。
contain 比率を維持したまま、画像が要素内に完全に収まるようにスケーリングします。 画像のアスペクト比と要素のサイズに応じて、幅全体または高さ全体を使用します。 通常、要素は画像で完全には覆われません(その代わり、画像は縮小されても常に全体が見えます)。

デフォルト値: auto。

使用方法

サイズ単位と auto は、さまざまな組み合わせで使用できます。例: auto 20px、 30% 20px、 auto 30% など。 この場合、最初のパラメータは背景の幅のサイズを、2番目のパラメータは背景の高さのサイズを指定します。 パラメータが1つ指定された場合、それは背景の幅と高さの両方のサイズを同時に設定します。

例

現在、背景画像は自然なサイズを持ちます:

html<div id="elem"></div>
css#elem {
  background-repeat: no-repeat;
  background-image: url("bg.png");
  border: 1px solid black;
  width: 550px;
  height: 400px;
}

Результат:

例

現在、背景画像のサイズは 300px × 400px です(この場合、画像の比率が歪みます):

html<div id="elem"></div>
css#elem {
  background-size: 300px 400px;
  background-repeat: no-repeat;
  background-image: url("bg.png");
  border: 1px solid black;
  width: 400px;
  height: 400px;
}

Результат:

例

現在、背景画像のサイズは 400px × 400px です(この場合、画像の比率が歪みます):

html<div id="elem"></div>
css#elem {
  background-size: 400px;
  background-repeat: no-repeat;
  background-image: url("bg.png");
  border: 1px solid black;
  width: 400px;
  height: 400px;
}

Результат:

例

現在、背景画像は水平方向に 400px のサイズで、垂直方向のサイズは比率が歪まないように調整されます:

html<div id="elem"></div>
css#elem {
  background-size: 400px auto;
  background-repeat: no-repeat;
  background-image: url("bg.png");
  border: 1px solid black;
  width: 400px;
  height: 400px;
}

Результат:

例

現在、背景画像は垂直方向に 400px のサイズで、水平方向のサイズは比率が歪まないように調整されます:

html<div id="elem"></div>
css#elem {
  background-size: auto 400px;
  background-repeat: no-repeat;
  background-image: url("bg.png");
  border: 1px solid black;
  width: 400px;
  height: 400px;
}

Результат:

例 . contain の値

値 contain の動作を確認してください:

html<div id="elem1" class="elem"></div>
<div id="elem2" class="elem"></div>
<div id="elem3" class="elem"></div>
<div id="elem4" class="elem"></div>
<div id="elem5" class="elem"></div>
<div id="elem6" class="elem"></div>
css.elem {
  background-size: contain;
  background-repeat: no-repeat;
  background-image: url("bg.png");
  border: 1px solid black;
  margin-bottom: 20px;
}

#elem1 {
  width: 600px;
  height: 500px;
}

#elem2 {
  width: 500px;
  height: 600px;
}

#elem3 {
  width: 400px;
  height: 400px;
}

#elem4 {
  width: 300px;
  height: 400px;
}

#elem5 {
  width: 200px;
  height: 400px;
}

#elem6 {
  width: 300px;
  height: 100px;
}

Результат:

例 . cover の値

値 cover の動作を確認してください:

html<div id="elem1" class="elem"></div>
<div id="elem2" class="elem"></div>
<div id="elem3" class="elem"></div>
<div id="elem4" class="elem"></div>
<div id="elem5" class="elem"></div>
<div id="elem6" class="elem"></div>
css.elem {
  background-size: cover;
  background-repeat: no-repeat;
  background-image: url("bg.png");
  border: 1px solid black;
  margin-bottom: 20px;
}

#elem1 {
  width: 600px;
  height: 500px;
}

#elem2 {
  width: 500px;
  height: 600px;
}

#elem3 {
  width: 400px;
  height: 400px;
}

#elem4 {
  width: 300px;
  height: 400px;
}

#elem5 {
  width: 200px;
  height: 400px;
}

#elem6 {
  width: 300px;
  height: 100px;
}

Результат:

例 . cover の動作の改善

値 cover の動作は、background-position プロパティを使用して画像を中央揃えすることで改善できます(この場合、馬のお尻ではなく頭が見える部分になります):

html<div id="elem1" class="elem"></div>
<div id="elem2" class="elem"></div>
<div id="elem3" class="elem"></div>
<div id="elem4" class="elem"></div>
<div id="elem5" class="elem"></div>
<div id="elem6" class="elem"></div>
css.elem {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  background-image: url("bg.png");
  border: 1px solid black;
  margin-bottom: 20px;
}

#elem1 {
  width: 600px;
  height: 500px;
}

#elem2 {
  width: 500px;
  height: 600px;
}

#elem3 {
  width: 400px;
  height: 400px;
}

#elem4 {
  width: 300px;
  height: 400px;
}

#elem5 {
  width: 200px;
  height: 400px;
}

#elem6 {
  width: 300px;
  height: 100px;
}

Результат:

関連項目

  • 背景の一括指定プロパティである background プロパティ、