マーカーを引いたように複数行のテキストに線を引く方法【CSS】

最終更新日:

公開日:2024-10-21

ページ内に広告が含まれています。
マーカーを引いたように複数行のテキストに線を引く方法【CSS】

複数行のテキストに線を引こうとして出来なかった事はありませんか?
今回は改行した時にも使える、マーカーを引いたような線を引く方法を解説していきます。

borderプロパティやtext-decorationプロパティの場合

まず最初に、通常線を引く場合はborderプロパティやtext-decorationプロパティを使用する事が多いと思います。
それらのプロパティで線を引くと下記の例のようになります。

borderプロパティの場合

<p>マーカーを引いたように複数行のテキストに線を引く方法</p>
p {
    border-bottom: 2px solid #8FC051;
}

マーカーを引いたように複数行のテキストに線を引く方法。マーカーを引いたように複数行のテキストに線を引く方法。

borderプロパティの場合、ブロックの外枠に対して線を引く事になりますので、上記例のように複数行に対応する事はできません
また、疑似要素などでも同様に複数行に対応する事は出来ません。

text-decorationプロパティの場合

p {
    text-decoration: underline;
}

マーカーを引いたように複数行のテキストに線を引く方法。マーカーを引いたように複数行のテキストに線を引く方法。

text-decorationプロパティは上記例のように複数行に渡って線を引く事が出来ますが、線の種類や色の変更が出来ず、デザイン的に使用出来ない事が多く実用的ではありません。

改行にも対応した複数行の線を引く方法

それでは、どのように複数行に渡って線を引くかというと、backgroundプロパティを使用します
まずは以下の例をご覧ください。

p {
    display: inline;
    padding: 0 4px 2px 4px;
    background: linear-gradient(transparent 70%, #8FC051 0%);
}

マーカーを引いたように複数行のテキストに線を引く方法。マーカーを引いたように複数行のテキストに線を引く方法。

上記例のように、backgroundプロパティでグラデーション(linear-gradient)を使用します。
ポイントは以下の3つです。

  • backgroundプロパティでグラデーション(linear-gradient)を使用
  • displayプロパティはinlineを指定する
  • 線とテキストの余白はpaddingで調整可能

displayプロパティは必ずinlineを指定してください。blockinline-blockではテキスト毎ではなくブロック全体にグラデーションがかかってしまいます。

linear-gradientについて

今回使用しているbackground: linear-gradientは、マーカーのような線となるので、以下のようなシンプルな指定になります。

background: linear-gradient(色 位置, 色 位置);
/* 上が0%、下が100% */

今回指定したlinear-gradient(transparent 70%, #8FC051 0%)は、上から70%の位置まで透明、上(0%)から下(100%)まで緑色となります。
通常は上から下に指定した色が徐々に切り替わっていきますが、二つ目の色(緑色の線)を上から0%の位置から開始にする事できっぱりと色が分かれたグラデーションにする事が可能です。

位置を指定しないで色のみを指定すると、綺麗なグラデーションになったりしますので、色々を試してみて下さい。

さいごに

いかがでしたでしょうか。
今回はマーカーを引いたように複数行のテキストに線を引く方法を解説しました。
この方法を覚えておくと、複数行の線で躓く事も無くなります。spanタグに変えて実装するなど、環境に合わせてぜひお試しください。

おすすめ記事

当ブログ運営者 ヒデ

北海道札幌市在住のフリーランスでWeb制作を行っているヒデです。Webコーディング(HTML・CSS・JSなど)やWordpressのカスタマイズ等のテクニック、困った時に確認できる分かりやすい解説を目標にして情報を発信していければと思っています。プロフィールはこちら

当サイトに関するご意見・ご感想・ご要望または仕事のご依頼は以下のフォームよりお願い致します。

お問い合わせ お仕事のご依頼
PAGE TOP