So unterstreichst du Text in HTML
Es gibt zwei Wege: das <u>-Tag oder die CSS-Eigenschaft text-decoration: underline. Beide ziehen dieselbe Linie:
Das Problem jeder Unterstreichung zeigt die dritte Zeile: Leser erwarten, dass unterstrichener Text ein Link ist, und klicken darauf. Unterstreiche normalen Text nur, wenn es einen klaren Grund gibt.
Was das u-Tag bedeutet
<u> ist kein allgemeiner Unterstreichen-Knopf. Im aktuellen HTML bedeutet es Text mit einer nicht ausgesprochenen Anmerkung: eine Markierung, die sagt „hier ist etwas Besonderes“, ohne zu sagen, was. Die üblichen echten Einsätze:
- einen Rechtschreibfehler markieren (wie es ein Textverarbeitungsprogramm tut, oft mit einer roten Wellenlinie),
- Eigennamen in chinesischem Text markieren, was dort eine typografische Konvention ist.
Für Betonung nimmst du <em> oder <strong> (siehe fett), für Buchtitel <cite>. Wenn du nur das Aussehen willst, nimm CSS.
Durchstreichen: s und del
HTML hat zwei Tags, die eine Linie durch Text ziehen, und sie bedeuten Verschiedenes:
| Tag | Bedeutung | Typische Verwendung |
|---|---|---|
<s> | Nicht mehr korrekt oder relevant, bleibt zur Einordnung stehen | Alter Preis, ausverkaufte Ticketkategorie |
<del> | Aus dem Dokument entfernt | Bearbeitungen, Changelogs, erledigte Punkte einer To-do-Liste |
Änderungen mit ins und del markieren
<ins> ist der Partner von <del>: Es markiert hinzugefügten Text. Browser unterstreichen es standardmäßig. Beide akzeptieren datetime (wann die Änderung passiert ist) und cite (eine URL, die sie erklärt):
Dieser rot-grüne Stil ist das bekannte Aussehen eines Diffs. text-decoration: none an ins entfernt die Standardunterstreichung, damit es nicht wie ein Link aussieht.
Unterstreichen und durchstreichen mit CSS
text-decoration übernimmt den optischen Teil für jedes Element: Es nimmt eine Farbe und einen Stil, und text-decoration-thickness legt die Dicke fest. Für rein dekorative Linien ist das das richtige Werkzeug:
Wie du die Unterstreichung bei Links entfernst, den Abstand der Unterstreichung und die übrigen Details zu text-decoration findest du auf der Seite zu CSS underline.
Barrierefreiheit
Die Unterstützung von <s>, <del> und <ins> durch Screenreader ist uneinheitlich: Manche sagen sie als gelöscht oder eingefügt an, viele lesen sie als normalen Text vor. Ein Zuhörer hört dann vielleicht „Preis 49 Dollar 29 Dollar“, ohne Hinweis, welcher Preis gilt. Wenn der Unterschied wichtig ist, sag ihn auch in Worten, etwa mit Text, der optisch versteckt ist, aber vorgelesen wird, oder einfach mit „Vorher 49 “.
Häufige Fehler
- Text unterstreichen, der kein Link ist. Leser werden versuchen, darauf zu klicken. Hebe ihn stattdessen mit Fettdruck, Farbe oder einem Hintergrund hervor.
<u>zur Betonung verwenden. Nimm<em>oder<strong>.<strike>verwenden. Es ist obsolet. Nimm<s>,<del>odertext-decoration: line-through.<s>für gelöschten Inhalt in einer Dokumenthistorie verwenden. Das ist<del>, das außerdem festhalten kann, wann es passiert ist.- Sich allein auf die Linie verlassen, um Bedeutung zu transportieren. Viele Screenreader sagen sie nicht an.
Häufig gestellte Fragen
Wie unterstreiche ich Text in HTML?
Setz ihn in <u> oder wende im CSS text-decoration: underline an. Nimm <u> nur für seine spezielle Bedeutung (etwa um ein falsch geschriebenes Wort zu markieren); für eine rein optische Unterstreichung nimm CSS an einem <span> oder am Element selbst.
Wie streiche ich Text in HTML durch?
Nimm <s> für Text, der nicht mehr stimmt, etwa einen alten Preis, und <del> für Text, der bei einer Bearbeitung entfernt wurde. Beide ziehen eine Linie durch den Text. Im CSS macht text-decoration: line-through optisch dasselbe.
Ist das <u>-Tag veraltet?
Nein. <u> war in HTML 4 veraltet, kam aber in HTML5 mit neuer Bedeutung zurück: Text mit einer nicht textlichen Anmerkung, etwa ein Rechtschreibfehler oder ein Eigenname in chinesischem Text. Es ist gültig, nur selten die richtige Wahl.
Was ist aus dem <strike>-Tag geworden?
<strike> ist obsolet. Browser zeichnen es noch als Durchstreichung, aber es ist kein gültiges HTML. Nimm je nach Bedeutung <s> oder <del> oder text-decoration: line-through.
Was ist der Unterschied zwischen <s> und <del>?
<s> markiert Text, der nicht mehr relevant oder korrekt ist, aber zur Einordnung stehen bleibt, etwa einen durchgestrichenen Preis. <del> markiert Text, der aus dem Dokument gelöscht wurde, oft neben einem <ins>, das zeigt, was ihn ersetzt hat, und kann die Attribute datetime und cite tragen.