CSSでテキストに下線をつける場合、基本的には以下のようにtext-decorationを使って設定する。
1 2 3 4 | . underline { line-height : 2.4 ; text-decoration : underline ; } |

text-decorationで設定する下線は上記のように、テキストのみにスタイルが適用されるが、行全体に下線を付けたいケースがある。
今回は以下のようなスタイルを適用するためのCSSコードを紹介する。

こちらのコードが該当のCSSで、簡単に解説すると、まず下線をbackground-imageで設定するところがポイント。
1 2 3 4 5 6 | . underline { line-height : 2.4 ; background-image : linear-gradient ( 180 deg, rgba ( 204 , 204 , 204 , 0 ) 0% , rgba ( 204 , 204 , 204 , 0 ) 97% , #000 100% ); background-repeat : repeat-y ; background-size : 100% 2.4em ; } |
background-imageにlinear-gradientを設定しているのだが、3行目の「97%」を「0%」に設定してみると以下のようなグラデーションが背景に適用される。

これを利用し、下線に当たる下部以外を透過させるため「97%」に指定する。
あとは、line-heightとbackground-sizeに同じ値を設定し、好みの高さに調整すればOKだ。