【CSS】疑似要素で吹き出し

目次

サンプルコード

<style>
    .bubble {
        position: relative;
        background: #ffffff;
        border: 4px solid #000000;
        border-radius: 12px;
        padding: 20px;
        width: 300px;
        margin: 40px;
    }

    .bubble:after, .bubble:before {
        content: '';
        position: absolute;
        left: -20px;
        top: 50%;
        transform: translateY(-50%);
        border-style: solid;
    }

    .bubble:before {
        border-width: 10px 20px 10px 0;
        border-color: transparent #000000 transparent transparent;
        left: -24px;
    }

    .bubble:after {
        border-width: 8px 16px 8px 0;
        border-color: transparent #ffffff transparent transparent;
        left: -16px;
    }
</style>
<div class="bubble">
    こんにちは!これは吹き出しのサンプルです。
</div>
</body
こんにちは!これは吹き出しのサンプルです。

疑似要素の :before と :after では、:after の方が前面(上のレイヤー)に表示されます。

これは CSS の仕様で定められていて、要素の描画順序は以下のようになります:

  1. :before 疑似要素(最背面)
  2. 要素本体(中間)
  3. :after 疑似要素(最前面)
  • :before(青色の三角形)が後ろに
  • :after(赤色の三角形)が前に

※この描画順序を変更したい場合は、z-indexを使用することができます

before要素の箇所
after要素の箇所

この記事を書いた人

目次