コーディングをしているとよく使うけど、書き方をすぐ忘れるコードがあるのでメモしておく。

上記のような吹き出し型のブロックについて、あるブロック要素の中央下部に三角形を配置したい場合がある。

この場合のコード(SCSS)は以下のとおり。

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
.parentBlock {
    $elemColor: #f4f8f4; // 要素の色
    position: relative;
    background: $elemColor;
    &::after {
        $size: 24px; // 三角形のサイズ
        position: absolute;
        bottom: -($size*2);
        left: 50%;
        margin-left: -($size);
        display: block;
        content: '';
        width: 0;
        height: 0;
        border-top: $size solid $elemColor;
        border-bottom: $size solid transparent;
        border-left: $size solid transparent;
        border-right: $size solid transparent;
    }
}

三角形は疑似要素タグafterを使う。

三角形を表示させるポイントとなるコードはborderの付け方。
今回の例のように下向き三角の場合はtopにのみborder-colorを指定し、その他方向のborderにはtransparentを指定する。

中央配置については、leftとmargin-leftの組み合わせで調整する。