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

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

更新日:2026-09-26

前のページでは、

  • 背景色
  • 文字色
  • 配色

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

今回は、

  • 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
  • 横並びレイアウト
  • 要素の中央揃え

などを学んでいきます。

ここから、

「レイアウト」

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

この記事をシェア

X Facebook