囲み枠の一部に背景パターンを入れた吹き出しの作り方

@ハクト 2023-07-21 11:29:49に投稿

今回は囲み枠の左上と右下に背景パターンを配置して、吹き出しにする方法を解説します。

「background」プロパティに複数の「gradient」関数を指定して実装しています。

以下のように指定することでチェック柄の吹き出しが作れます。

上下の余白を取る

「padding: 2rem 1rem;」で上下の余白を多めにとります。

<div class="box">
    <p>左上と右下にチェックを入れた...</p>
</div>

 

.box {
    position: relative;
    padding: 2rem 1rem;
    border: 2px solid #333;
}

左上と右下にチェックを表示

「background」プロパティの最初の「linear-gradient」で左上と右下を斜めに透過。2つの「repeating-linear-gradient」でチェックパターンを作り重ねます。

.box {
  ...
  background:
      linear-gradient(
          135deg, 
          transparent 1.8rem, 
          #efefef 1.8rem calc(100% - 1.8rem), 
          transparent calc(100% - 1.8rem)
      ),
      repeating-linear-gradient(
        rgba(232, 78, 175, .5) 0px 4px, 
        transparent 4px 8px
      ),
      repeating-linear-gradient(90deg, 
         rgba(232, 78, 175, .5) 0px 4px, 
         transparent 4px 8px
      );

}

吹き出しを入れる

before疑似要素で中央に線を引いた吹き出しを入れ完成

.box{...}
.box::before {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    height: 20px;
    width: 2px;
    background-color: #333;
    content: "";
}

.box p {
    color: #333;
    line-height: 1.5;
}

 

全てのコード

コードを表示

<div class="box">
    <p>左上と右下にチェックを入れた囲み枠デザイン。左上と右下にチェックを入れた囲み枠デザイン。左上と右下にチェックを入れた囲み枠デザイン。</p>
</div>

 

.box {
    position: relative;
    padding: 2rem 1rem;
    border: 2px solid #333;
    background:
        linear-gradient(135deg, transparent 1.8rem, #efefef 1.8rem calc(100% - 1.8rem), transparent calc(100% - 1.8rem)),
        repeating-linear-gradient(rgba(232, 78, 175, .5) 0px 4px, transparent 4px 8px),
        repeating-linear-gradient(90deg, rgba(232, 78, 175, .5) 0px 4px, transparent 4px 8px);
}

.box::before {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    height: 20px;
    width: 2px;
    background-color: #333;
    content: "";
}

.box p {
    color: #333;
    line-height: 1.5;
}

@ハクト

サービス作り・デザイン好き。70年代生まれのWEBエンジニア。WEBパーツをCSSでカスタマイズしてコピペできるサービスを運営中「Pa-tu」。実装したWEBパーツやツールを利用してWEB情報やライフハックを発信してます。

Twitter