実務でもたまにあるのが吹き出しのコーディングですが、これに影を付けようとすると上手くいかないことがあります。
今回は、CSSで吹き出しを作る方法と、吹き出しの三角形を含めて影を付ける方法を解説していきます。
- 完全無料
- 30日間でWeb制作を学べる
- 現役エンジニアへの質問無制限
- オンラインの動画学習なので時間場所を問わず勉強可能
- 最大4回の学習サポート面談
- 毎日人数制限ありの先着制
(有料になっていたらすいません🙇♂️)
CSSで吹き出しを作る方法
まずは、影なしで吹き出しを作る方法です。
HTMLはこちら。
<div class="balloon balloon-top">吹き出し上</div>
<div class="balloon balloon-right">吹き出し右</div>
<div class="balloon balloon-bottom">吹き出し下</div>
<div class="balloon balloon-left">吹き出し左</div>
三角形の位置は、上下左右4つのパターンで分けます。
CSSはこちら(余白やフォントサイズなどは省略しています)
/* 共通のCSS */
.balloon {
background-color: #ccc;
border-radius: 8px;
position: relative;
width: 140px;
}
.balloon::before {
background-color: #ccc;
content: "";
height: 30px;
position: absolute;
width: 30px;
}
/* 吹き出し上 */
.balloon-top::before {
clip-path: polygon(0 100%, 50% 0, 100% 100%);
left: 43%;
top: -20px;
}
/* 吹き出し右 */
.balloon-right::before {
clip-path: polygon(0 0, 0 100%, 100% 50%);
right: -20px;
top: 22%;
}
/* 吹き出し下 */
.balloon-bottom::before {
bottom: -20px;
clip-path: polygon(0 0, 50% 100%, 100% 0);
left: 43%;
}
/* 吹き出し左 */
.balloon-left::before {
clip-path: polygon(100% 0, 0 50%, 100% 100%);
left: -20px;
top: 22%;
}
三角形は擬似要素でclip-path
を使っています。
三角形の作り方は、以下の記事を参照下さい。
CSSで三角形を作る2つの方法(clip-path、border使用)
続きを見る
三角形の位置に関しては、top、right、bottom、left
などで調整して下さい。
デモはこちらです。
See the Pen
Untitled by junpei (@junpei-sugiyama)
on CodePen.
CSSで吹き出しをに影を作る方法
吹き出しに影を作る方法は簡単で、以下のコードを追記するだけです。
.balloon {
filter: drop-shadow(5px 5px 3px rgba(0, 0, 0, .6));
}
デモはこちら。
See the Pen
吹き出しに影 by junpei (@junpei-sugiyama)
on CodePen.
ちなみに、box-shadow
を使うと三角形部分に影が付きません。
See the Pen
吹き出しに影(失敗例) by junpei (@junpei-sugiyama)
on CodePen.
まとめ:吹き出しを作るには擬似要素、影を付けるにはdrop-shadowを使おう
今回は、CSSで吹き出しを作る方法と、吹き出しの三角形部分を含めて影を付ける方法を解説してきました。
clip-pathに影を付ける方法は、以下の記事でも解説しています。
【CSS】clip-pathに影(shadow)を付ける2つの方法【三角形もOK】
続きを見る
以上になります。