この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:guest
更新日時:2026-06-11 07:10:02

タイトル: background-imageプロパティ
SEOタイトル: CSS background-image プロパティ(url / linear-gradient / 複数指定 / none / 注意点)

この記事の要点
  • background-image は要素の背景画像を指定する CSS プロパティ
  • 値は url("...") / linear-gradient(...) / radial-gradient(...) / none など
  • カンマ区切りで複数指定でき、先に書いたものほど上に重なる
  • 画像のサイズ・位置・繰り返しは background-size / background-position / background-repeat で制御する
  • <img> と違って意味のない装飾画像専用。意味のある画像は <img alt="..."> を使う

background-image プロパティとは

background-image は CSS で要素の背景画像を指定するプロパティです。画像ファイル(PNG / JPG / WebP / SVG / GIF)を URL で読み込んだり、CSS グラデーション関数(linear-gradient / radial-gradient)を直接書いて画像ファイルなしで背景を作ったりできます。

基本構文

.hero {
  background-image: url("/img/hero.jpg");
}

.cta {
  /* グラデーション */
  background-image: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.no-bg {
  background-image: none;   /* 背景画像を無効化 */
}

主な値

意味
url("path")画像ファイルを指定(相対 / 絶対 / data URI)
linear-gradient(...)直線グラデーション
radial-gradient(...)放射状グラデーション
conic-gradient(...)円錐グラデーション
repeating-linear-gradient(...)繰り返し直線グラデーション
none背景画像なし(初期値)
inherit / initial / unsetCSS 共通キーワード

複数の背景画像を重ねる

カンマ区切りで複数の背景を指定でき、先に書いたものが上に重なります。半透明 PNG やグラデーションを重ねてオーバーレイ表現に多用されます。

.banner {
  background-image:
    linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)),  /* 上:黒の半透明 */
    url("/img/hero.jpg");                                /* 下:実画像 */
  background-size: cover;
  background-position: center;
  color: #fff;
}

関連プロパティと組み合わせる

プロパティ役割
background-sizecover / contain / 数値でサイズ指定
background-positioncenter / top right / 数値で位置指定
background-repeatno-repeat / repeat-x / repeat-y
background-attachmentfixed でパララックス風の固定背景
background-color画像の読み込み失敗時のフォールバック色
background上記すべてのショートハンド

典型レイアウト:cover でフィット

.hero {
  background-image: url("/img/hero.jpg");
  background-size: cover;        /* 要素全体を覆う */
  background-position: center;   /* 中央に寄せる */
  background-repeat: no-repeat;
  height: 480px;
}

注意点

  • 背景画像は alt が付けられない → 意味のある画像は <img> を使う(アクセシビリティ)
  • HTTPS ページから http:// の画像 URL を読むと混在コンテンツでブロックされる
  • url() 内のパスはCSS ファイル基準の相対パスになる
  • 大きすぎる画像は LCP(Largest Contentful Paint)悪化の原因。WebP / AVIF適切な圧縮を推奨
  • background-color も併記しておくと、画像読み込み失敗時に真っ白にならない

SVG・グラデーションを混ぜたデザイン例

SVG をデータ URI として読み込み、その上に半透明グラデーションを重ねるとリッチな見出しが作れます。SVG はベクタなので拡縮しても劣化しません。CSS ファイル内で直接書けるため画像アセットの管理コストも下がり、テーマカラーをサイトごとに差し替える運用にも向きます。

パフォーマンス上の注意

背景画像はページ読み込み時に追加の HTTP リクエストを発生させ、特にヒーロー画像のような大きな画像は LCP(Largest Contentful Paint)の主要因になります。重要な背景画像には <link rel="preload" as="image"> でプリロードを指定し、画像形式は WebPAVIF を優先するとファイルサイズを半分以下に抑えられます。装飾用の小さな模様は data URI で CSS に埋め込み、複数のサイズが必要なら後述の image-set()<picture> 相当の機能で対応します。CSS 内で url() を多数記述するとブラウザは全件パースしますが、ダウンロードは実際にスタイルが適用されたときに発生するため、メディアクエリで分岐させた背景画像は不要な転送が走りません。

data URI で画像をインライン化

小さなアイコンは Base64 で url() 内に埋め込めばリクエスト数を減らせます。ただしキャッシュが効かないためサイズの大きい画像には不向き。

.bullet {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><circle cx='4' cy='4' r='3' fill='%233498db'/></svg>");
}

レスポンシブ:image-set() で高 DPI 対応

Retina 等の高 DPI ディスプレイ向けに、image-set() で密度別の画像を切り替えられます。

.hero {
  background-image: image-set(
    url("/img/hero.jpg")    1x,
    url("/img/hero@2x.jpg") 2x,
    url("/img/hero@3x.jpg") 3x
  );
}

関連

  • backgroundプロパティ — 背景関連のショートハンド
  • background-color プロパティ — 背景色
  • background-size プロパティ — 背景画像サイズ
  • background-position プロパティ — 背景画像位置
  • linear-gradient 関数 — グラデーション値