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

タイトル: background-colorプロパティ
SEOタイトル: CSS background-color プロパティ完全ガイド

この記事の要点
  • background-color は要素の背景色を指定するプロパティ
  • 値: HEX (#fff) / RGB (rgb(255,255,255)) / RGBA (透明度) / HSL / カラー名 / transparent / currentColor
  • background ショートハンドの一部。background: #fff url(bg.png) no-repeat center/cover 形式
  • 画像と重ねるときは background-image が前面、background-color が背景。半透明 PNG / Gradient と併用
  • Dark Mode 対応は prefers-color-scheme メディアクエリ + CSS Variables

background-color の基本

background-color プロパティは、要素の背景色を指定します。指定範囲はパディング (padding) を含む border の内側まで。border の外 (margin 領域) には適用されません。

/* 基本: HEX 色 */
.box { background-color: #4f46e5; }

/* よく使う省略形 */
.white { background-color: #fff; }     /* = #ffffff */
.black { background-color: #000; }     /* = #000000 */
.gray  { background-color: #888; }     /* = #888888 */

/* RGB / RGBA (透明度付き) */
.rgb   { background-color: rgb(79, 70, 229); }
.rgba  { background-color: rgba(79, 70, 229, 0.5); }   /* 50% 透明 */

/* HSL / HSLA (色相・彩度・輝度) */
.hsl   { background-color: hsl(244, 76%, 59%); }
.hsla  { background-color: hsla(244, 76%, 59%, 0.5); }

/* カラー名 */
.named { background-color: tomato; }   /* CSS3 で 140 種 */

/* 透明 (背景なし) */
.tr    { background-color: transparent; }   /* デフォルト */

色指定方法の比較

表記用途
HEX (3桁)#fff1桁略記 (R/G/Bが2桁同値時)
HEX (6桁)#4f46e5標準的
HEX (8桁)#4f46e580末尾2桁が alpha (50% = 80)
RGBrgb(79, 70, 229)JS 計算と相性良し
RGBArgba(79, 70, 229, 0.5)半透明
HSLhsl(244, 76%, 59%)色相ベースで調整しやすい
カラー名tomato覚えやすいが種類限定
currentColorcurrentColor親要素の color と同期

currentColor との連動

currentColor要素自身の color プロパティ値を参照します。テキスト色と背景色を連動させる用途や、SVG のテーマ化で活躍します。

.button {
    color: #4f46e5;
    border: 2px solid currentColor;        /* color と同じ */
}

.button:hover {
    color: #fff;
    background-color: #4f46e5;
    border-color: currentColor;            /* 白に追従 */
}

/* SVG アイコンの色をテキストに合わせる */
.icon { color: #333; }
.icon svg path { fill: currentColor; }

background ショートハンド

背景色は background ショートハンドの一部としてもまとめて指定できます。順序自由ですが、background-position/size だけ / で区切ります。

/* 個別指定 */
.a {
    background-color: #f0f;
    background-image: url(bg.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    background-attachment: fixed;
}

/* ショートハンド (上記と同じ) */
.b {
    background: #f0f url(bg.png) no-repeat center/cover fixed;
}

/* 注意: ショートハンドは未指定値を初期値にリセット */
.c {
    background-image: url(bg.png);
    background: red;            /* ← image もクリアされる */
    /* 安全な書き方: */
    background-color: red;
}

画像とのレイヤー重ね

背景画像 (background-image) は背景色より前面に表示されます。半透明 PNG や Gradient と組み合わせると効果的:

/* 画像の上に背景色を透かす */
.hero {
    background-color: #4f46e5;            /* 下: 紫 */
    background-image:
        linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)),  /* 半透明黒オーバーレイ */
        url(hero.jpg);                    /* 上: 写真 */
    background-size: cover;
    color: #fff;
}

/* 複数レイヤー (上から順) */
.multi {
    background:
        url(top.png) no-repeat top,
        url(middle.png) no-repeat center,
        url(bottom.png) no-repeat bottom,
        #f0f0f0;
}

Gradient (グラデーション)

linear-gradient / radial-gradient / conic-gradient背景画像扱いなので、background-image または background で指定します。

/* 線形 */
.linear {
    background: linear-gradient(to right, #4f46e5, #ec4899);
    background: linear-gradient(135deg, #4f46e5 0%, #ec4899 100%);
}

/* 円形 */
.radial {
    background: radial-gradient(circle, #fff 0%, #000 100%);
}

/* 円錐 */
.conic {
    background: conic-gradient(from 0deg, red, yellow, green, blue, red);
}

/* 縞模様 */
.stripes {
    background: repeating-linear-gradient(
        45deg,
        #fff 0 10px,
        #eee 10px 20px
    );
}

Dark Mode 対応

/* CSS Variables + メディアクエリ */
:root {
    --bg-main: #ffffff;
    --bg-card: #f8fafc;
    --text-main: #1e293b;
}

@media (prefers-color-scheme: dark) {
    :root {
        --bg-main: #0f172a;
        --bg-card: #1e293b;
        --text-main: #e2e8f0;
    }
}

body {
    background-color: var(--bg-main);
    color: var(--text-main);
}

.card {
    background-color: var(--bg-card);
}

/* ユーザー手動切替対応 */
html[data-theme="dark"] {
    --bg-main: #0f172a;
    --bg-card: #1e293b;
}

透明度との関係

プロパティ動作
background-color: rgba(0,0,0,0.5)背景のみ半透明 (テキストは不透明)
opacity: 0.5要素全体 (テキスト含む) が半透明
background-color: transparent完全透明 (= alpha 0)
/* ✅ 背景だけ薄くしたい */
.overlay {
    background-color: rgba(0, 0, 0, 0.5);
    color: #fff;     /* 文字はクッキリ白 */
}

/* ❌ opacity だと文字も薄くなる */
.bad {
    background-color: #000;
    opacity: 0.5;    /* 文字も半透明 */
    color: #fff;
}

ホバー・状態変化

.button {
    background-color: #4f46e5;
    color: #fff;
    transition: background-color 0.2s ease;
}

.button:hover    { background-color: #4338ca; }
.button:active   { background-color: #3730a3; }
.button:focus    { background-color: #4338ca; outline: 2px solid #fff; }
.button:disabled { background-color: #cbd5e1; cursor: not-allowed; }

/* ダーク版 */
@media (prefers-color-scheme: dark) {
    .button { background-color: #6366f1; }
    .button:hover { background-color: #818cf8; }
}

背景色の継承

background-color継承されないプロパティです (初期値 transparent)。子要素は明示しないと透明 = 親の背景が透けて見えます。

body { background-color: #f0f0f0; }     /* グレー背景 */

.card { }                                /* 透明 → 親のグレーが見える */
.card-blue { background-color: #4f46e5; } /* 紫の上書き */

/* 全体の地色を統一しつつ、特定セクションだけ別色 */
section { background-color: #fff; }
section.dark { background-color: #1a1a1a; color: #fff; }

FAQ

Q: background-colorbackground、どっち使う?
A: 色だけ指定なら background-color、画像も指定するなら background ショートハンド。混在時はショートハンドが他のプロパティをリセットするので注意。

Q: 背景色のアニメーションが効かない
A: transition: background-color 0.3s が必要。transition: all でも可。

Q: 印刷時に背景色が出ない
A: ブラウザ既定で背景色は印刷されない。@media print { * { -webkit-print-color-adjust: exact; print-color-adjust: exact; } } で強制可能。