[CSS] 画像を用いずにCSSとHTMLで吹き出しを作成する
こんにちは、@yoheiMuneです。
以前にHTMLとCSSを使って三角形を作成する方法を書いた内容の続きで、 今回はHTMLとCSSだけで吹き出しを作成する方法をブログに書きたいと思います。
今回以下のようなものを作成します。
(ソースコード)
上記のスタイルを指定することで、吹き出しを作成することができます。
最初はHTMLでなんで三角形ができるの?と不思議でしたが、順を追ってまなぶことでなんとか理解できてスッキリしました(*゚▽゚)ノ
また、:after要素を使わない場合には、以下のようにボーターの拡張が三角形になります。
こーゆうスタイルも便利。
上記の吹き出しをベースにして、三角形の大きさ・形・場所を変更することでいろいろな吹き出しを作ることができます。
例えば、吹き出しの三角形を上側/左右左寄りに表示する場合には、以下のように実装します。
(ソースコード)
少しでもお役になれば幸いです。
- HTMLとCSSを使って三角形を作成する方法
今回は吹き出しに陰をつける要件はなかったのですが、いろいろと調べると陰もつけられるようなので、今後挑戦したいと思います。
最後までご覧頂きましてありがとうございました。
以前にHTMLとCSSを使って三角形を作成する方法を書いた内容の続きで、 今回はHTMLとCSSだけで吹き出しを作成する方法をブログに書きたいと思います。
画像を用いずにHTMLとCSSだけで吹き出しを作成する
三角形を作る実装を、:before疑似要素と:after疑似要素に用いることで、吹き出しを作成したいと思います。今回以下のようなものを作成します。
(ソースコード)
<style type="text/css"> /* 吹き出し本体部分のスタイル */ .baloon { width: 200px; height: 100px; background-color: #fffaee; border: 2px solid #66ff66; border-radius: 10px; -webkit-border-radius: 10px; margin: 20px auto; position: relative; } /* 吹き出し三角部分のスタイル */ .baloon:before, .baloon:after { width: 0; height: 0; content: ""; position: absolute; /* 吹き出し三角形を右側につける */ right: 0px; } /* 吹き出し三角部分のボーダーとなる部分のスタイル */ .baloon:before { /* 吹き出し三角形の大きさを指定する */ border-top: 20px solid transparent; border-bottom: 20px solid transparent; border-left: 20px solid #66ff66; border-right: 0px solid transparent; /* 右側の上下中央に表示するため50% */ /* パーセント指定することで、吹き出しの高さが可変でも対応できる */ top: 50%; /* 三角形の大きさ分、ネガティブマージンを取る */ margin-right: -20px; margin-top: -20px; } /* 吹き出し三角形部分のボーダー内側のスタイル */ .baloon:after { /* :beforeより2px小さくすることで、:beforeがボーダーとして見える */ border-top: 18px solid transparent; border-bottom: 18px solid transparent; border-left: 18px solid #fffaee; border-right: 0px solid transparent; top: 50%; margin-right: -18px; margin-top: -18px; } </style> <div class="baloon"></div>
上記のスタイルを指定することで、吹き出しを作成することができます。
最初はHTMLでなんで三角形ができるの?と不思議でしたが、順を追ってまなぶことでなんとか理解できてスッキリしました(*゚▽゚)ノ
また、:after要素を使わない場合には、以下のようにボーターの拡張が三角形になります。
こーゆうスタイルも便利。
上記の吹き出しをベースにして、三角形の大きさ・形・場所を変更することでいろいろな吹き出しを作ることができます。
例えば、吹き出しの三角形を上側/左右左寄りに表示する場合には、以下のように実装します。
(ソースコード)
〜 抜粋 〜 .baloon3:before, .baloon3:after { /* 上に表示する */ top: 0px; } .baloon3:before { /* 矢印を上に表示する */ border-top: 0px solid transparent; border-bottom: 10px solid #66ff66; border-left: 10px solid transparent; border-right: 10px solid transparent; margin-right: -10px; /* 左右で左寄りに表示 */ left: 25%; margin-top: -10px; } .baloon3:after { border-top: 0px solid transparent; border-bottom: 8px solid #fffaee; border-left: 8px solid transparent; border-right: 8px solid transparent; margin-right: -8px; left: 25%; margin-top: -8px; }
関連記事
吹き出しの三角形部分の色々なカスタマイズについて、以下の記事が参考になるかもしれません。少しでもお役になれば幸いです。
- HTMLとCSSを使って三角形を作成する方法
最後に
仕事でお世話になっている案件で、吹き出しを行数可変で表示したいというお話があって、吹き出しの実装を学んだのでブログに書いてみました。今回は吹き出しに陰をつける要件はなかったのですが、いろいろと調べると陰もつけられるようなので、今後挑戦したいと思います。
最後までご覧頂きましてありがとうございました。