Menu

Podkreślenie i przekreślenie w HTML: znaczniki u, ins, s i del

Podkreśl tekst w HTML za pomocą <u> lub text-decoration w CSS, a przekreśl go za pomocą <s> lub <del>. Dowiedz się, co znaczy każdy znacznik, jak <ins> i <del> oznaczają zmiany i dlaczego podkreślony tekst, który nie jest linkiem, myli czytelników.

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

Jak podkreślić tekst w HTML

Są dwa sposoby: znacznik <u> albo właściwość CSS text-decoration: underline. Oba rysują taką samą linię:

Problem z każdym podkreśleniem widać w trzecim wierszu: czytelnicy oczekują, że podkreślony tekst to link, i klikają go. Podkreślaj zwykły tekst tylko wtedy, gdy jest ku temu wyraźny powód.

Co oznacza znacznik u

<u> to nie ogólny przycisk "podkreśl". We współczesnym HTML oznacza tekst z niewyrażoną adnotacją: znak mówiący "tu jest coś szczególnego", bez mówienia, co to jest. Typowe realne zastosowania:

  • oznaczanie błędu ortograficznego (tak jak robi to edytor tekstu, często czerwoną falistą linią),
  • oznaczanie nazw własnych w tekście chińskim, co jest tam konwencją typograficzną.

Do wyróżnienia używaj <em> lub <strong> (zobacz pogrubienie), a do tytułów książek <cite>. Jeśli chodzi ci tylko o wygląd, użyj CSS.

Przekreślenie: s i del

HTML ma dwa znaczniki, które rysują linię przez tekst, i znaczą one co innego:

ZnacznikZnaczenieTypowe użycie
<s>Już nieaktualne lub nieistotne, zostawione dla kontekstuStara cena, wyprzedany rodzaj biletu
<del>Usunięte z dokumentuEdycje, dzienniki zmian, zrobione punkty na liście zadań

Oznaczanie zmian za pomocą ins i del

<ins> to para dla <del>: oznacza tekst, który został dodany. Przeglądarki domyślnie go podkreślają. Oba przyjmują datetime (kiedy nastąpiła zmiana) i cite (adres URL z wyjaśnieniem):

Ten czerwono-zielony styl to znajomy wygląd diffa. text-decoration: none na ins usuwa domyślne podkreślenie, żeby tekst nie wyglądał jak link.

Podkreślenie i przekreślenie w CSS

text-decoration załatwia stronę wizualną dla dowolnego elementu: przyjmuje kolor i styl, a text-decoration-thickness ustawia grubość. Do czysto dekoracyjnych linii to właściwe narzędzie:

Usuwanie podkreślenia z linków, odstęp podkreślenia i pozostałe szczegóły text-decoration znajdziesz na stronie o podkreśleniu w CSS.

Dostępność

Obsługa <s>, <del> i <ins> w czytnikach ekranu jest niespójna: niektóre ogłaszają je jako usunięte lub wstawione, wiele czyta je jak zwykły tekst, więc słuchacz może usłyszeć "Cena 49 dolarów 29 dolarów" bez wskazówki, która jest aktualna. Gdy różnica ma znaczenie, powiedz to też słowami, na przykład tekstem ukrytym wizualnie, ale czytanym na głos, albo po prostu "Było 49 ,teraz29, teraz 29 ".

Częste błędy

  • Podkreślanie tekstu, który nie jest linkiem. Czytelnicy będą próbowali go kliknąć. Do wyróżnienia użyj pogrubienia, koloru lub tła.
  • Używanie <u> do wyróżnienia. Użyj <em> lub <strong>.
  • Używanie <strike>. Jest przestarzały. Użyj <s>, <del> lub text-decoration: line-through.
  • Używanie <s> dla usuniętej treści w historii dokumentu. Do tego służy <del>, który może też zapisać, kiedy to nastąpiło.
  • Poleganie wyłącznie na linii jako nośniku znaczenia. Wiele czytników ekranu jej nie ogłasza.

Najczęściej zadawane pytania

Jak podkreślić tekst w HTML?

Otocz go znacznikiem <u> albo użyj text-decoration: underline w CSS. <u> stosuj tylko zgodnie z jego konkretnym znaczeniem (na przykład do oznaczenia błędnie zapisanego słowa); do czysto wizualnego podkreślenia użyj CSS na <span> lub na samym elemencie.

Jak przekreślić tekst w HTML?

Użyj <s> dla tekstu, który nie jest już aktualny, jak stara cena, a <del> dla tekstu usuniętego podczas edycji. Oba rysują linię przez tekst. W CSS text-decoration: line-through daje ten sam efekt wizualny.

Czy znacznik <u> jest przestarzały?

Nie. <u> był przestarzały w HTML 4, ale wrócił w HTML5 z nowym znaczeniem: tekst z adnotacją nietekstową, na przykład błąd ortograficzny albo nazwa własna w tekście chińskim. Jest poprawny, tylko rzadko jest właściwym wyborem.

Co się stało ze znacznikiem <strike>?

<strike> jest przestarzały. Przeglądarki nadal pokazują go jako przekreślenie, ale nie jest poprawnym HTML. Użyj <s> lub <del> w zależności od znaczenia albo text-decoration: line-through.

Czym różni się <s> od <del>?

<s> oznacza tekst, który nie jest już istotny ani prawdziwy, ale zostaje dla kontekstu, jak przekreślona cena. <del> oznacza tekst usunięty z dokumentu, często obok <ins> pokazującego, co go zastąpiło, i może mieć atrybuty datetime i cite.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ