CSSで要素をふんわり浮かせるには
box-shadow でカードをふんわり浮かせる基本形を示す。
ぼかし半径と透明度で浮き具合を調整する。
公開: 更新:
<div class="card">ふんわり浮いたカード</div>.card {
width: 180px;
padding: 20px;
border-radius: 12px;
background: #fff;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}影は面が浮いていることを示す手がかりで、ぼかし半径を大きく、透明度を低くするほど遠くに浮いて見える。
Y 方向のオフセットとぼかし半径をセットで動かすのは、光源が上にあるという見え方と矛盾させないためである。
つまずき
影が濃すぎると古い印象になる。
調整の基本は次の 3 つである。
- 影の透明度は 0.1〜0.2 程度に抑える
- 浮き具合は Y 方向のオフセットとぼかし半径のバランスで決める
:hoverで影を強めると、持ち上がる動きも作れる
.card {
width: 120px;
margin: 8px;
padding: 16px;
border-radius: 12px;
background: #fff;
box-shadow: 3px 3px 4px rgba(0, 0, 0, 0.6);
}.card {
width: 120px;
margin: 8px;
padding: 16px;
border-radius: 12px;
background: #fff;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}.card {
width: 120px;
margin: 8px;
padding: 16px;
border-radius: 12px;
background: #fff;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
/* :hover の状態を固定して表示 */
.card.is-hover {
box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}