CSSだけで吹き出しを作ってみた
ほんのちょっとCSSの勉強をしたので、CSSだけで吹き出しを作ってみました。
コード
とりあえずベタに「角丸」「グラデーション」「吹き出しの三角」あたりを実装してみた。
.balloon {
border-radius:8px;
position:relative;
padding:10px 10px;
background: #9bd6f2;
background: -webkit-gradient(linear, left top, left bottom, color-stop(1.00, #9bd6f2), color-stop(0.00, #d5f1fb));
background: -webkit-linear-gradient(#d5f1fb, #9bd6f2);
background: -moz-linear-gradient(#d5f1fb, #9bd6f2);
background: -o-linear-gradient(#d5f1fb, #9bd6f2);
background: -ms-linear-gradient(#d5f1fb, #9bd6f2);
background: linear-gradient(#d5f1fb, #9bd6f2);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#d5f1fb', endColorstr='#9bd6f2', GradientType=0); /* IE7,8,9 */
}
.balloon:after {
border-color:#9bd6f2 transparent transparent;
border-style:solid;
border-width:16px 16px 0;
bottom:-16px;
content:"";
display:block;
right:24px;
position:absolute;
width:0;
}
こんな感じの吹き出しができるよ
上記のコードで、次のような吹き出しができます。
吹き出しの下に表示位置などを指定した画像を添えると、キャラクターが喋ってるような表現もできます。
IE爆発しろ
古いIE用にグラデーション再現させるために「filter」を使ってるんだけど、角丸の「border-radius」と共存できないみたい。
ie9で-ms-filterとborder-radiusを設定するとグラデがはみ出す – jsdo.it – Share JavaScript, HTML5 and CSS
要素とは別のレイヤーでfilterがかかっていて、そのfilterレイヤーには角丸が効かない? …
[CSS3]今から出来るIE対策 「影とグラデーション編」 | CreaMo!-クリーモ!-クリエイティブをMotto!集めるブログ
IEはグラデーションをfilterで効かせると角丸(border-radius)が効かなくなります。 …
PIE.htc とか使わない場合は、どっちかすてるしか無いのかな。
今さらだけどCSSすごい
他にもCSSだけで色んな吹き出しが作れるらしい。
CSSで吹き出し作るのって、手の込んだイメージがあったのですが、仕組みを理解した上でやってみると意外と簡単ですね。いろいろと試してみたくなりました。



コメント