【初心者でもわかる】疑似要素にも下線がついてしまう時に下線を消す2つの方法

【初心者でもわかる】疑似要素にも下線がついてしまう時に下線を消す2つの方法

どうも7noteです。疑似要素にも下線(_)がついてしまう時の対処法2選

疑似要素を持つ要素にtext-decoration: underline;を指定すると、疑似要素にも下線が引かれてしまう時の対処方法について。

↓↓↓こんな感じになって困っていませんか?↓↓↓

miss.png

今回は2つの対処法を紹介できればと思います。

対処法① 「疑似要素をdisplay: inline-block

index.html
<span class="ko">こんにちは</span>
style.css
.ko {
  text-decoration: underline;
}

.ko::before {
  content: "♦";
  padding-right: 0.5em;
  display: inline-block;
}

結果

mihon2.png

text-decorationはインライン要素にしか効かない特性があるため、この方法で対処することができます。

対処法② 「親要素でくくって、親要素に疑似要素を当てる」

index.html
<span class="oya"><span class="ko">こんにちは</span></span>
style.css
.oya::before {
  content: "★";
  padding-right: 0.5em;
}

.ko {
  text-decoration: underline;
}

結果

mihon1.png

下線を子要素に引くので、親要素についている疑似要素には下線が付かない。分かりやすいですね。
親要素がブロック要素の時は親要素にdisplay: inline-block;等を指定する方がコーディングしやすいかも。。

まとめ

おすすめは①の方法ですね。直感的で余分なタグを増やす必要もないので。
場面によっては②の方がデザインの意味と一致するなと思った時は①の方法がいいかなと思います!

おそまつ!