2022.08.30

HTML・CSS

linear-gradientを利用した文字の下線

background-imageプロパティのlinear-gradientを利用して複数行の文字に下線を引きます。複数行に対応させるため、inline要素に適用します。
デモページはこちら

以下のhtml構造で確認します。

<p>to bottom(180deg)</p>
<div class="div-parent">
  <span class="span-child-01">linear-gradientを利用した文字の下線<br>inline要素に適用して複数行に対応</span>
</div>
<p>to bottom(180deg)※下線位置を2px上に調整</p>
<div class="div-parent">
  <span class="span-child-02">linear-gradientを利用した文字の下線<br>inline要素に適用して複数行に対応</span>
</div>
<p>to right(90deg)</p>
<div class="div-parent">
  <span class="span-child-03">linear-gradientを利用した文字の下線<br>inline要素に適用して複数行に対応</span>
</div>
<p>to right(90deg)※下線位置を2px上に調整</p>
<div class="div-parent">
  <span class="span-child-04">linear-gradientを利用した文字の下線<br>inline要素に適用して複数行に対応</span>
</div>

linear-gradienの基本的な記述は以下になります。

background-image: linear-gradient(方向, 開始色, 中間色, 終了色);

方向は「to right」のようにtoに続けてキーワードを指定するか、「90deg」のようにdegで角度を指定します。方向の指定を省略すると初期値の「to bottom(180deg)」が適用され、上から下にグラデーションがかかります。

開始色、中間色、終了色は後ろに「#eae5d6 60%」のように経由点を指定することができます。
「transparent 60%, #eae5d6 60%」のように開始色と終了色の経由点を同じにすると、グラデーションではなくシマシマ模様になります。このシマシマ模様が文字の下線に利用できます。
なお、不要であれば中間色は省略できます。

CSSは以下になります。backgroundプロパティにショートハンドで指定する方法と、background-imageプロパティを使う方法があります。また、グラデーションの方向「to bottom(180deg)」と「to right(90deg)」で記述を分けています。

background-positionで「left bottom 2px」のように記述すれば、下線の縦方向の位置を2px上に調整できます。

.div-parent {
  line-height: 1.5;
  min-height: 100px;
  margin: 0 0 1em;
  background-color: #fff;
}

//to bottom(180deg)
.span-child-01 {
  background: linear-gradient(transparent 60%, #eae5d6 60%);
}
.span-child-02 {
  background: linear-gradient(transparent 60%, #eae5d6 60%) left bottom 2px;
}

//to right(90deg)
.span-child-03 {
  background-image: linear-gradient(to right, #eae5d6, #eae5d6);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 40%; //幅・高さ
}
.span-child-04 {
  background-image: linear-gradient(to right, #eae5d6, #eae5d6);
  background-repeat: no-repeat;
  background-position: left bottom 2px;
  background-size: 100% 40%; //幅・高さ
}

関連記事

2020.10.08

HTML・CSS

CSSのfilterプロパティの使用例

デモページはこちら CSSのfilterプロパティの使用例をまとめました。filterプロパティはIE11でサポート外ですが、種類が豊富で実装が簡単です。 ■ …

2020.10.15

HTML・CSS

CSS疑似要素のcontentプロパティにjQueryで設定したカスタムデータ属性の値を指定

デモページはこちら CSS疑似要素のcontentプロパティにjQueryで設定したカスタムデータ属性の値を指定します。以下のhtml構造でテストします。デモペ…

2021.07.06

HTML・CSS

background-imageプロパティを利用した高さ可変の三角形

borderプロパティで三角形を作成した場合、高さを可変にすることができません。そこで、background-imageプロパティのlinear-gradien…

2024.09.25

HTML・CSS

marginの相殺について

兄弟要素と親子要素で発生するmarginの相殺について確認します。また相殺が発生しない例外についても確認します。デモページはこちら 共通のCSSは以下になります…

2020.09.14

HTML・CSS

metaタグのformat-detectionで自動リンクを無効化

デモページはこちら metaタグのformat-detectionを設定して、スマホのブラウザで電話番号、メールアドレス、住所の表記がリンクに自動変換されるのを…

上に戻る