画像を使用せず、CSSで三角形をつくる方法をメモしておきます。
サンプルコード
まずは普通に三角形を作ってみます。
今回は吹き出し部分の三角形を疑似要素で作成します。
HTML
<div class="arrow arrow-top">吹き出しテキスト<br />上向き三角形</div> <div class="arrow arrow-bottom">吹き出しテキスト<br />下向き三角形</div> <div class="arrow arrow-left">吹き出しテキスト<br />左向き三角形</div> <div class="arrow arrow-right">吹き出しテキスト<br />右向き三角形</div>
.arrowで枠組みを作って、.arrow-topなどで各向きの三角形をborderを使って作成します。
CSS
枠組み
.arrow { position: relative; width: 250px; margin: 20px auto; border-radius: 5px; border: #3498DB 2px solid; padding: 5px; }
上向き
.arrow-top:after { /* 疑似要素用 */ content: ''; display: block; /* 三角形の配置 */ position: absolute; top: -18px; left: 10px; /* 三角形の作成 */ width: 0; height: 0; border: transparent 8px solid; border-bottom-color: #3498DB; }
下向き
.arrow-bottom:after { /* 疑似要素用 */ content: ''; display: block; /* 三角形の配置 */ position: absolute; bottom: -18px; right: 10px; /* 三角形の作成 */ width: 0; height: 0; border: transparent 8px solid; border-top-color: #3498DB; }
左向き
.arrow-left:after { content: ''; display: block; /* 三角形の配置 */ position: absolute; top: 10px; left: -18px; /* 三角形の作成 */ width: 0; height: 0; border: transparent 8px solid; border-right-color: #3498DB; }
右向き
.arrow-right:after { content: ''; display: block; /* 三角形の配置 */ position: absolute; bottom: 10px; right: -18px; /* 三角形の作成 */ width: 0; height: 0; border: transparent 8px solid; border-left-color: #3498DB; }
下図の左側が width, height 0pxで、border 8pxを指定した状態です。
borderの色を指定していないので、何も表示されません。
この状態でborder-bottomに色指定することで、右側のような上向きの三角形が表示されます。
border-widthを変更することにより、三角形の変形ができます。
HTML
<div class="triangle01"></div> <div class="triangle02"></div>
.triangle01を縦方向に、.triangle02を横方向に引き延ばしてみます。
CSS
.triangle01 { /* 三角形の作成 */ width: 0; height: 0; border: transparent 20px solid; border-bottom-color: #3498DB; border-bottom-width: 60px; } .triangle02 { /* 三角形の作成 */ width: 0; height: 0; border: transparent 20px solid; border-bottom-color: #3498DB; border-left-width: 60px; border-right-width: 60px; }
コメントが承認されるまで時間がかかります。