本文へスキップ
HTML / CSS 入門 CSS box-shadow border

box-shadow と border で立体感を出してみよう

更新日:2026-08-02

前のページでは、

  • 背景色
  • 文字色
  • 配色

を使って、サイトの印象を整えました。

今回は、

  • box-shadow
  • border
  • カードデザイン

を使って、

「立体感」

を出してみます。

現在のWebサイトでは、

カード型デザイン

が非常によく使われています


今回使用するファイル構成

この回では、次のファイルを使用します。

html-practice/
├── index.html
└── css/
    └── style.css

box-shadow とは?

box-shadow は、

要素に影を付ける

CSSです。

例えば、

.card {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

を書くと、カードの下に影が表示されます。


実際に書いてみよう

.card {
  background-color: white;

  padding: 24px;

  border-radius: 12px;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

保存してブラウザを確認してください。

カードが少し浮いて見えるはずです。


rgba とは?

今回、

rgba(0, 0, 0, 0.08)

を書いています。

これは、

透明度付きの色

です。


rgba の数字の意味をもう少し詳しく見てみよう

rgba は、色を数字で指定する書き方です。

rgba(0, 0, 0, 0.08)

これは、次の4つの数字でできています。

rgba(赤, 緑, 青, 透明度)


光の3原色

画面の色は、

の3つの光を組み合わせて作られています。

これを、

光の3原色

といいます。

CSS の rgba でも、この3つの色を数字で指定します。


RGB の数字は 0〜255

rgba の最初の3つの数字は、

赤、緑、青の強さ

を表しています。

数字は、

0 〜 255

で指定します。

例えば、

rgba(255, 0, 0, 1)

は、赤が最大で、緑と青が0です。

つまり、

になります。


色の例

rgba(255, 0, 0, 1)

rgba(0, 255, 0, 1)

rgba(0, 0, 255, 1)

rgba(255, 255, 255, 1)

rgba(0, 0, 0, 1)


なぜ 255, 255, 255 が白なの?

光の色では、

赤 + 緑 + 青

をすべて最大にすると、白になります。

そのため、

rgba(255, 255, 255, 1)

は白です。


なぜ 0, 0, 0 が黒なの?

逆に、

赤も緑も青も光っていない状態

が黒です。

そのため、

rgba(0, 0, 0, 1)

は黒になります。


最後の数字は透明度

rgba の最後の数字は、透明度です。

0 〜 1

で指定します。

例えば、

rgba(0, 0, 0, 1)

は、完全に不透明な黒です。

rgba(0, 0, 0, 0.5)

は、50%くらい透けた黒です。

rgba(0, 0, 0, 0)

は、完全に透明です。


box-shadow では薄い黒をよく使う

今回の影では、

rgba(0, 0, 0, 0.08)

を使っています。

これは、

黒い影を、かなり薄く表示する

という意味です。


0.08 はかなり薄い

透明度の数字は、

  • 1 に近いほど濃い
  • 0 に近いほど薄い

です。

そのため、

rgba(0, 0, 0, 0.08)

は、とても薄い黒になります。

影としては自然に見えやすいです。


数字を変えて試してみよう

例えば、

box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);

にすると、かなり濃い影になります。

逆に、

box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);

にすると、かなり薄い影になります。

なぜ影を薄くするの?

影が強すぎると、

古いデザインっぽく見える

ことがあります。

現在のWebデザインでは、

かなり薄い影

がよく使われます。



border とは?

border は、

枠線

を付けるCSSです。

例えば、

.card {
  border: 1px solid #e5e7eb;
}

を書くと、薄い枠線が付きます。


solid ってなに?

solid

は、

実線

を意味しています。

例えば、

border: 1px solid black;

は、

1px の黒い実線

になります。


box-shadow と border の違い

border

線そのもの

を表示します。


box-shadow

影による立体感

を表示します。


両方使うことも多い

実際のWeb制作では、

border + box-shadow

を組み合わせることも非常によくあります。

例えば、

.card {
  background-color: white;

  padding: 24px;

  border-radius: 12px;

  border: 1px solid #e5e7eb;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

のように書きます。


なぜカードデザインが多いの?

カード型にすると、

  • 情報を区切りやすい
  • スマホでも見やすい
  • UIが整理されて見える

というメリットがあります。


実際によく見る場所

カードデザインは、

  • ニュース一覧
  • 商品一覧
  • ブログ一覧
  • YouTube
  • SNS

など、さまざまな場所で使われています。


hover と組み合わせることも多い

例えば、

.card:hover {
  transform: translateY(-4px);
}

を書くと、

少し浮き上がる

アニメーションになります。


transform とは?

transform は、

要素を動かしたり変形したりする

CSSです。


translateY(-4px)

translateY(-4px)

は、

上へ4px移動

を意味しています。


transition と組み合わせよう

hover を自然にするため、

transition: 0.3s;

も追加してみましょう。


実際にまとめて書いてみよう

.card {
  background-color: white;

  padding: 24px;

  border-radius: 12px;

  border: 1px solid #e5e7eb;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);

  transition: 0.3s;
}

.card:hover {
  transform: translateY(-4px);
}

かなり「最近のWebサイトっぽい」雰囲気になります



少しだけ動かすのがコツ

現在のWebデザインでは、

「ほんの少し動く」

くらいが好まれることが多いです。


今回学んだこと

今回学んだこと:

  • box-shadow
  • border
  • rgba
  • transform
  • translateY
  • カードデザイン

などです。


次のページでは

次のページでは、

  • Flexbox
  • 横並びレイアウト
  • 要素の中央揃え

などを学んでいきます。

ここから、

「レイアウト」

の知識がかなり重要になってきます