CSSの擬似要素(:before、:after)を使用して三角形で吹き出しを作るコツです。
CSSで作成する三角形で当初難しかったのは
・サイズの調整
・表示位置の調整
でした。
今回は、上記がわかったので記事にしてみます。
まず三角形の原理から、
実は三角に見えてこっそり四角なんです。

border-top: 10px solid transparent; border-right: 10px solid #db0000; border-bottom: 10px solid transparent; border-left: 10px solid transparent;

※transparentは無色透明です。
実際にHTML/CSSを用意して、ブラウザで見るとこうなります。

HTML/CSSはこうなってます。
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
.balloon {
padding: 20px;
margin: 0 0 0 20px;
color: #ffffff;
background: #db0000;
position: relative;
}
.balloon:after{
content: "";
width: 0;
height: 0;
border-top: 10px solid transparent;
border-right: 10px solid #db0000;
border-bottom: 10px solid transparent;
border-left: 10px solid transparent;
position: absolute;
left: -20px;
top: 50%;
margin-top: -10px;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無題ドキュメント</title>
</head>
<body>
<div class="balloon">
<p>三角形で吹き出し作るの楽しいよ!</p>
</div>
</body>
</html>
次に表示位置の調整の仕方ですが、
left: -20px;/*四角の幅*/ top: 50%; margin-top: -10px;/*四角の幅÷2*/
こうなってます。
なので、上部なら

.balloon:after{
content: "";
width: 0;
height: 0;
border-top: 10px solid transparent;
border-right: 10px solid transparent;
border-bottom: 10px solid #db0000;
border-left: 10px solid transparent;
position: absolute;
top: -20px;
left: 50%;
margin-left: -10px;
}
こうなって、
右側なら

.balloon:after{
content: "";
width: 0;
height: 0;
border-top: 10px solid transparent;
border-right: 10px solid transparent;
border-bottom: 10px solid transparent;
border-left: 10px solid #db0000;
position: absolute;
right: -20px;
top: 50%;
margin-top: -10px;
}
こうなって、
下側なら

.balloon:after{
content: "";
width: 0;
height: 0;
border-top: 10px solid #db0000;
border-right: 10px solid transparent;
border-bottom: 10px solid transparent;
border-left: 10px solid transparent;
position: absolute;
bottom: -20px;
left: 50%;
margin-left: -10px;
}
こうなります。