background-size 使い方

深入理解 CSS `background-size` 属性:灵活控制背景画像サイズ

本文では、CSS の `background-size` 属性について詳しく解説します。`background-size` は背景画像のサイズを制御する際に非常に役立つプロパティです。本文では、その使用方法、具体的な値、そして実際の適用例を通して、背景画像のサイズを思い通りに操作し、Web デザインの表現力を高める方法を学びます。

1. `background-size` 属性の概要

  • **定義:** `background-size` プロパティは、要素の背景に設定された画像のサイズを指定するために使用されます。
  • **構文:** `background-size: value1 value2;`
  • **デフォルト値:** `auto auto` (画像の本来のサイズで表示されます)

2. `background-size` 属性値の詳細

2.1 キーワード値

  • `cover`: 背景画像を、背景領域全体を覆うように拡大縮小します。アスペクト比は維持されます。
  • `contain`: 背景画像全体が背景領域内に収まるように拡大縮小します。アスペクト比は維持されます。

2.2 長さ/パーセンテージ値

  • 具体的な長さ (px, em, rem など) やパーセンテージを使って、背景画像の幅と高さを指定できます。
  • 値を一つだけ指定した場合は、もう片方は `auto` と解釈されます。

2.3 `auto` 値

  • `auto` は、背景画像の幅または高さを、その本来のサイズに基づいて自動的に調整することを意味します。

3. `background-size` の適用例

3.1 フルスクリーン背景画像の作成

`background-size: cover;` を使用すると、画面サイズに自動的に調整されるフルスクリーンの背景画像を簡単に実装できます。


body {
  background-image: url("your-image.jpg");
  background-size: cover;
}

3.2 背景画像の表示領域の制御

具体的な長さとパーセンテージを指定することで、背景画像が背景領域のどの範囲に表示されるかを正確に制御できます。


.example {
  background-image: url("your-image.jpg");
  background-size: 200px 100px; /* 幅 200px、高さ 100px に設定 */
}

3.3 画像のタイリング

`background-repeat` プロパティを `repeat` に設定し、`background-size` で小さな画像サイズを指定することで、画像のタイリングを実現できます。


.example {
  background-image: url("small-tile.png");
  background-repeat: repeat;
  background-size: 50px 50px; 
}

4. ブラウザの互換性

`background-size` プロパティは、主要なブラウザで広くサポートされています。ただし、古いブラウザの中にはサポートしていないものもあるため、注意が必要です。

詳細なブラウザの互換性情報については、Can I use を参照してください。

5. まとめ

`background-size` プロパティは、背景画像のサイズを柔軟に制御するための強力なツールです。このプロパティをマスターすることで、より豊かで表現力豊かなWebデザインを実現できます。

Q&A

  • **Q: `background-size: cover` と `background-size: contain` の違いは何ですか?**
    **A:** `cover` は背景画像が背景領域全体を覆うように、`contain` は背景画像全体が背景領域内に収まるように画像を拡大縮小します。
  • **Q: `background-size` を使って、レスポンシブな背景画像を作成できますか?**
    **A:** はい、メディアクエリと組み合わせて使用することで、画面サイズに合わせて背景画像のサイズを調整できます。
  • **Q: `background-size` が古いブラウザで機能しない場合はどうすればよいですか?**
    **A:** JavaScript ライブラリを使用するか、古いブラウザ向けの代替手段を用意する必要があります。

その他の参考記事:CSS 背景プロパティ