background-size、background-position、object-fit プロパティを使いこなす

2024-04-02

HTML、CSS、background-image を使って div に背景画像をぴったり合わせる方法

Web ページで div 要素に背景画像をぴったり合わせる方法はいくつかあります。この解説では、最も一般的な 3 つの方法を紹介します。

background-size プロパティは、背景画像のサイズを指定するために使用されます。このプロパティを使うには、以下の値を指定できます。

  • auto: 画像の元のサイズを維持します。
  • contain: 画像を div 要素内に収まるようにサイズ変更します。

.div {
  background-image: url(image.jpg);
  background-size: cover;
}
  • left: 画像を div 要素の左側に配置します。
.div {
  background-image: url(image.jpg);
  background-position: center;
}

object-fit プロパティは、img 要素と svg 要素の画像のサイズと位置を調整するために使用されます。このプロパティを使うには、以下の値を指定できます。

  • fill: 画像を要素全体に引き伸ばして表示します。
.div {
  background-image: url(image.jpg);
  object-fit: cover;
}
  • 画像を div 要素全体にぴったり合わせたい場合は、background-size: cover; を使用します。
  • 画像を要素内に収まるようにサイズ変更したい場合は、object-fit: contain; を使用します。



HTML

<div class="div"></div>

CSS

.div {
  width: 200px;
  height: 200px;
  background-image: url(image.jpg);
}

/* background-size を使って画像を div 要素全体にぴったり合わせる */
.div-1 {
  background-size: cover;
}

/* background-position を使って画像を div 要素の中央に配置する */
.div-2 {
  background-position: center;
}

/* object-fit を使って画像を要素内に収まるようにサイズ変更する */
.div-3 {
  object-fit: contain;
}

実行結果

  • .div-1: 画像が div 要素全体にぴったりと表示されます。

補足

  • 上記のコードはあくまでもサンプルです。必要に応じて変更してください。
  • 画像のサイズや div 要素のサイズを変更すると、表示結果が変わります。



  • repeat: 画像を水平方向と垂直方向に繰り返します。
  • no-repeat: 画像を繰り返しません。
.div {
  background-image: url(image.jpg);
  background-size: cover;
  background-repeat: no-repeat;
}
  • scroll: 画像はスクロールと一緒に移動します。
  • fixed: 画像はスクロールしても移動しません。
.div {
  background-image: url(image.jpg);
  background-size: cover;
  background-attachment: fixed;
}

media query を使って、画面サイズやデバイスによって背景画像の表示方法を変えることができます。

@media (max-width: 768px) {
  .div {
    background-image: url(image-small.jpg);
  }
}

@media (min-width: 769px) {
  .div {
    background-image: url(image-large.jpg);
  }
}
  • 画像を繰り返したくない場合は、background-repeat: no-repeat; を使用します。
  • 画像をスクロールしても移動したくない場合は、background-attachment: fixed; を使用します。
  • 画面サイズやデバイスによって背景画像の表示方法を変えたい場合は、media query を使用します。

html css background-image


JavaScriptモジュールやasync属性、defer属性の使い方

<head>タグ内<body>タグ内それぞれの配置方法には、メリットとデメリットがあります。ページ全体に影響を与えるJavaScriptコードを記述するのに適している。ページロード時にJavaScriptコードが実行されるため、ユーザーがページコンテンツを閲覧する前に必要な処理を実行できる。...


MousetrapでEnterキーでボタンクリック!詳細なキーボードイベント処理

この機能を実現するには、JavaScript、jQuery、HTMLの組み合わせで以下の方法が考えられます。この方法は、JavaScriptの keypress イベントを使用して、Enterキーが押されたときにボタンクリックをシミュレートします。...


もう困らない!横幅超過のテーブルを救う!HTMLとCSSで実現するスムーズな横スクロール

ステップ 1: HTML の構造を変更するテーブルを囲む div 要素を追加します。この要素に overflow-x: auto; を適用することで、水平スクロールバーを表示します。必要に応じて、div 要素にクラスや ID を追加します。これにより、CSS で簡単にスタイルを設定することができます。...


【保存版】React Native で親ビューの幅に合わせた子ビューを作成する方法とサンプルコード集

方法 1: width プロパティとパーセンテージ値を使用するこれは最も簡単で直感的な方法です。親ビューのスタイルシートで flexDirection プロパティを row または column に設定し、子ビューのスタイルシートで width プロパティに 80% を指定します。...


window.open()関数を使って新しいタブでリンクを開く

HTMLの<a>要素でtarget="_blank"属性とrel="noopener noreferrer"属性を同時に使用する場合、セキュリティ上の脆弱性が存在する可能性があります。この脆弱性を悪用すると、攻撃者はユーザーのブラウザを操作し、個人情報窃取などの被害をもたらす可能性があります。...