Menu

Podkreślenie CSS: text-decoration, kolor, odstęp i usuwanie

Podkreśl tekst przez text-decoration, a potem kontroluj linię: jej kolor, styl, grubość i odległość od tekstu. Dowiedz się też, jak usunąć podkreślenie z linków i kiedy nie warto tego robić.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

Jak podkreślić tekst w CSS

text-decoration: underline rysuje linię pod tekstem. Linia ma kolor tekstu, chyba że nadasz jej inny.

Druga linijka używa skrótu text-decoration do rodzaju linii, stylu i koloru, a potem ustawia grubość i odstęp osobnymi właściwościami. Specyfikacja pozwala też umieścić grubość w skrócie, ale Safari odrzuca wtedy całą deklarację, więc pisz text-decoration-thickness osobno.

Właściwości text-decoration

WłaściwośćWartościDomyślnie
text-decoration-lineunderline, overline, line-through, none (można łączyć)none
text-decoration-stylesolid, double, dotted, dashed, wavysolid
text-decoration-colorDowolny kolorcurrentColor (kolor tekstu)
text-decoration-thicknessDługość, procent, auto, from-fontauto
text-underline-offsetDługość, procent, autoauto

text-decoration to skrót dla pierwszych czterech, ale nie umieszczaj w nim grubości: Safari ignoruje deklarację text-decoration, która ją zawiera. text-underline-offset jest osobna i trzeba ją pisać samodzielnie.

Style, kolory i grubość

Przesuwanie podkreślenia: text-underline-offset

Domyślnie linia leży blisko liter i omija wydłużenia dolne, takie jak g, p i y. text-underline-offset przesuwa ją niżej, co często wygląda czyściej w nagłówkach i linkach:

Przerwy wokół wydłużeń dolnych pochodzą z text-decoration-skip-ink: auto, które jest domyślnie włączone. Ustaw none, żeby linia była ciągła.

Usuwanie podkreślenia z linków

Linki są podkreślane przez arkusz stylów przeglądarki. text-decoration: none usuwa podkreślenie. Ponieważ wielu czytelników znajduje linki po podkreśleniu, przywróć je przy najechaniu i fokusie z klawiatury, a linkowi nadaj kolor inny niż kolor tekstu:

Paski nawigacji i przyciski to rozsądne miejsce na rezygnację z podkreślenia, bo ich położenie już mówi "to link". Wewnątrz akapitu tekstu je zachowaj. Więcej o stanach linków na stronie o hover.

Nadkreślenie i przekreślenie

text-decoration-line rysuje też linię nad tekstem albo przez tekst i przyjmuje więcej niż jedną wartość:

.old-price { text-decoration: line-through; }
.both      { text-decoration-line: underline overline; }

Przekreślenie przez CSS jest tylko wizualne. Gdy tekst to usunięta treść (zmieniona cena, usunięta pozycja), oznacz go przez <s> albo <del>, jak pokazuje strona o podkreśleniu w HTML, żeby znaczenie było w strukturze, a nie tylko w stylach.

Częste błędy

  • Używanie <u> do podkreślania dla stylu. <u> służy do tekstu oznaczonego jako inny, na przykład błędów pisowni. Do ostylowanego podkreślenia użyj CSS.
  • Podkreślanie tekstu, który nie jest linkiem. Czytelnicy będą próbowali go kliknąć. Do wyróżnienia użyj pogrubienia, koloru albo tła.
  • Usuwanie podkreślenia linków w tekście głównym bez innej wskazówki. Sam kolor nie wystarczy czytelnikom, którzy nie widzą różnicy.
  • Próba usunięcia podkreślenia rodzica z poziomu dziecka. Nie da się go cofnąć od środka; zmień rodzica albo nadaj dziecku inline-block.
  • Oczekiwanie text-underline-offset w skrócie. To osobna właściwość.
  • Umieszczanie grubości w skrócie. text-decoration: underline 2px działa w Chrome i Firefoksie, ale Safari odrzuca całą deklarację. Użyj text-decoration-thickness.

Najczęściej zadawane pytania

Jak podkreślić tekst w CSS?

Użyj na elemencie text-decoration: underline;. Do wyglądu linii dodaj text-decoration-color, text-decoration-style, text-decoration-thickness i text-underline-offset.

Jak usunąć podkreślenie z linku?

Ustaw text-decoration: none; na elemencie a. Zadbaj, żeby linki nadal się wyróżniały w inny sposób (kolor plus podkreślenie przy najechaniu lub fokusie), bo wielu czytelników rozpoznaje linki po podkreśleniu.

Jak zmienić kolor podkreślenia?

Użyj text-decoration-color albo skrótu: text-decoration: underline #f59e0b;. Bez tego linia ma kolor tekstu.

Jak dodać odstęp między tekstem a podkreśleniem?

Użyj text-underline-offset, na przykład text-underline-offset: 4px;. Większe wartości przesuwają linię dalej pod tekst.

Dlaczego nie mogę usunąć podkreślenia z elementu dziecka?

Podkreślenie narysowane przez rodzica jest malowane w poprzek jego dzieci i nie da się go usunąć od środka. Usuń je na elemencie, który je ustawia, albo nadaj dziecku display: inline-block, do którego dekoracja rodzica nie dociera.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ