【CSSで簡単!】LPでよく見る「テキストのアンダーライン」&「吹き出し」の作り方

今回はLPでよく見るこんな吹き出しの作り方をご紹介します!

目次

完成系のコード

See the Pen Untitled by ゆき | Web制作 (@yukimum22) on CodePen.

コード解説

HTML

<p class="hukidashi">テキストにアンダーラインを引くのが、<span class="underline">簡単にできるし改行にも対応</span>しているよ</p>

CSS

.hukidashi {
  position: relative;//三角の設置用
  padding: 25px 22px;//吹き出しの中の余白
  background-color: #fff;//吹き出しの背景色
  border-radius: 12px;//角丸
  filter: drop-shadow(0 3px 10px rgba(0,0,0, .3));//吹き出しの影
  max-width:400px;
}
.hukidashi::after {
  display: block;
  content: "";
  position: absolute;//三角の位置調整用
  bottom: -18px;//三角の位置調整用
  left: 37px;//三角の位置調整用
  width: 24px;
  height: 19px;
  -webkit-clip-path: polygon(92% 0, 0 0, 100% 100%);
  clip-path: polygon(92% 0, 0 0, 100% 100%);//三角形作成
  background-color: #fff;
}
.underline {
  text-decoration: underline;
  text-decoration-thickness: 12px;//太さ
  -webkit-text-decoration-color: #d0e4f1;
          text-decoration-color: #d0e4f1;//色
  text-underline-offset: -3px;//位置調整
  font-weight:bold;
}

ポイントは以下3つです。

  • 吹き出しの三角はclip-pathで変わった角度も再現可能!
  • 吹き出しのシャドウはfilter:drop-shadow();で三角部分もカバー!
  • テキストのアンダーラインはtext-decoration:underline;なので、改行にも対応可能!

こちらのポイントについて解説します。

ポイント1:吹き出しの三角はclip-pathで変わった角度も再現可能!

今は綺麗な三角(正三角形や2等辺三角形)でなくても、clip-pathで簡単に、変わった角度の三角形が再現できます。

三角形に関わらず、多角形はclip-pathのジェネレーターサイトでコードを作成することができます。

①まず作りたい⚪︎角形を選択します。今回は三角形なので「triangle」を選択します。

②次に図形の大きさを設定します。入力できる数字が「100〜553」なので、こちらの数字内で比率を揃えて再現します。
例えば今回は「(最大幅)24px×(高さ)19px」の三角形なので、240×190と入力します。

③図形の調整をします。三角形の場合は色付きの丸3つをそれぞれドラッグして調整します。

④clip-pathのコードが生成されるので、くり抜きたい要素に設置します。

ポイント2:吹き出しのシャドウはfilter:drop-shadow();で三角部分もカバー!

影をつけるというと、box-shadowの方が馴染みがあるかと思いますが、今回はfilter:drop-shadow();を使用しました。

細かい説明は省きますが、filter:drop-shadowは「疑似要素にも影をつけることができること」「要素の形に基づいて影をつけてくれること」が特徴なので、変わった形でも、形に沿って影をつけたいな、と思ったらbox-shadowではなくfilter-drop-shadowを使う必要があります。

吹き出しの場合も、filter-drop-shadowを設定すれば、吹き出しの形に沿って影をつけることが可能です。現在は全ブラウザに対応していて便利です。

こちらの記事も参考になります。

ポイント3:テキストのアンダーラインは改行にも対応可能!

コードをおさらいします。

text-decoration: underline;
text-decoration-thickness: 12px;//太さ
text-decoration-color: #d0e4f1;//色
text-underline-offset: -3px;//位置調整

テキストの一部分にラインマーカーのような下線をつけたい場合、下線をつけたい部分をspanで囲み、background: linear-gradient();を使用する方法がよく使われていたかと思いますが、こちらでは改行が入るとスタイルが崩れてしまいます。

text-decoration-thickness(太さ)、text-decoration-color(色)text-underline-offset(位置調整)を使用すれば、改行しても該当部分にラインはついたままなのでとても便利です!

使用する際の留意点としては「ラインは単色であること」。rgba()で透明度の調整はできますが、2色だったりグラデーションには対応していないです。

また、位置調整のtext-underline-offsetは1emに対する%指定もできるようなのですが、%指定は一部ブラウザで対応していないので、pxまたはem指定するのが良いです。

以上です。

最後まで読んでくださりありがとうございました!

\Web制作コーダーの営業にオススメ!/

こんな不安を解決します!

  • Web制作の面談ってどんなこと聞かれるの?
  • どんな風に答えればいいの?
  • オンラインの面談って何を準備したらいいの?

"少しでも面談の不安を減らしたい"という方はぜひお手に取ってみてください!

ゆき
体育会系2児ママ
Web制作コーダー(元理学療法士)。子供の出産を機に働き方を考え直しWeb制作の学習を始める。現在はフリーランスとして在宅ワークで活動中。
よかったらシェアしてね!
  • URLをコピーしました!
目次