CSS ・ 枠線・装飾

box-shadow

影

要素の外側(または内側)に影を付けます。ずらす距離・ぼかし・広がり・色を組み合わせて指定します。

初期値
none
適用対象
すべての要素
継承
しない
01

サンプルコード

HTML
1<div class="row">
2 <div class="box soft">やわらかい影</div>
3 <div class="box hard">くっきりした影</div>
4 <div class="box inset">内側の影</div>
5</div>
CSS
1body {
2 background: #f5f3f0;
3}
4.row {
5 display: flex;
6 gap: 20px;
7}
8.box {
9 width: 130px;
10 padding: 20px 0;
11 text-align: center;
12 background: #fff;
13 border-radius: 6px;
14 font-size: 13px;
15}
16.soft {
17 box-shadow: 0 4px 16px rgb(0 0 0 / 12%);
18}
19.hard {
20 box-shadow: 4px 4px 0 #b68235;
21}
22.inset {
23 box-shadow: inset 0 2px 6px rgb(0 0 0 / 20%);
24}
02

実行結果

ブラウザでの表示
03

解説

box-shadow は要素に影を付けるプロパティです。値は「横のずれ 縦のずれ ぼかし 広がり 色」の順に書きます。ぼかしと広がりは省略できます。

色に透明度の低い黒を使い、ぼかしを大きめにすると、自然でやわらかい影になります。

先頭に inset を付けると内側の影になります。カンマで区切ると、複数の影を重ねられます。

04

応用例・注意点

値の書き方

値説明
0 4px 16px rgb(0 0 0 / 12%)下に4pxずらし、16pxぼかした影
4px 4px 0 #b68235ぼかしなしのくっきりした影
0 0 0 3px #b68235広がりだけで枠線のように見せる
inset 0 2px 6px …内側の影
none影なし

マウスを乗せると浮き上がるカード

影と transform を組み合わせると、浮き上がる動きになります。

CSS
1.card {
2 transition: box-shadow .2s, transform .2s;
3}
4.card:hover {
5 box-shadow: 0 8px 24px rgb(0 0 0 / 15%);
6 transform: translateY(-2px);
7}

注意点

  1. 01影を濃くしすぎると古い印象になりがちです。透明度は10〜20%程度から試します。
  2. 02影は要素の大きさに含まれず、ほかの要素に重なって表示されます。
↑↓ 選択Enter 移動Esc 閉じるCtrl K⌘K で開閉