So fügst du eine horizontale Linie ein
Setz <hr> zwischen zwei Inhaltsblöcke. Es hat kein schließendes Tag:
Standardmäßig zieht sich die Linie über die volle Breite ihres Containers, hat einen kleinen Außenabstand darüber und darunter und wird als dünner grauer inset-Rahmen gezeichnet (eine helle und eine dunkle Kante).
<hr> steht für horizontal rule. In HTML bedeutet es einen thematischen Umbruch: einen Themen- oder Szenenwechsel innerhalb eines Abschnitts. Screenreader sagen es als Trenner an. Wenn du nur eine dekorative Linie willst (unter einer Überschrift, um eine Karte), zeichne sie stattdessen mit einem CSS-Rahmen an diesem Element.
Ein hr mit CSS stylen
Das Standardaussehen kommt von Rahmen, der zuverlässige Weg, ein <hr> zu stylen, ist also, sie zu entfernen und selbst einen Rahmen zu zeichnen:
| Um zu ändern | Nimm |
|---|---|
| Farbe | border-top: 2px solid #2563eb (nach border: none) |
| Dicke | Die Breite in diesem Rahmen, etwa 6px |
| Stil | solid, dashed, dotted, double |
| Länge | width: 40%, dazu margin-inline: auto zum Zentrieren |
| Abgerundete Enden | height + background + border-radius statt eines Rahmens |
| Abstand drumherum | margin |
Nur color: blue an einem hr zu setzen ändert die Linie in aktuellen Browsern zwar, aber der Standardstil inset schattiert sie, und sie behält eine Höhe von 2px. Wenn du den Rahmen zurücksetzt, bekommst du genau das, was du angibst.
Alte hr-Attribute
Alter Code verwendet Attribute direkt am Tag:
<hr size="4" width="50%" color="red" noshade align="left">
size, width, color, noshade und align sind obsolet. Browser wenden sie noch an, damit alte Seiten richtig aussehen, aber sie sind ungültiges HTML und später schwerer zu ändern. Ersetze sie durch das CSS oben.
Eine Trennlinie mit Text in der Mitte
Die „oder“-Linie zwischen zwei Anmelde-Buttons ist kein <hr> (ein hr kann keinen Text enthalten). Sie ist eine Flex-Reihe mit einer Linie auf jeder Seite des Wortes:
Die beiden Teile ::before und ::after nehmen mit flex: 1 jeweils die Hälfte des freien Platzes ein und zeichnen einen oberen Rahmen. Ändere or in ein längeres Wort, und die Linien schrumpfen passend.
Vertikale Linien
Eine vertikale Version von <hr> gibt es nicht. Zeichne eine vertikale Linie mit einem Rahmen auf einer Seite eines Elements oder mit einem schmalen Element in einer Flex-Reihe:
border-inline-start setzt die Linie an den Anfang des Textes, der im Deutschen links und im Arabischen oder Hebräischen rechts liegt, das Layout funktioniert also in beiden Richtungen.
Häufige Fehler
</hr>schreiben.<hr>ist ein Void-Element.<hr>oder<hr />ist alles, was du brauchst.<hr>zur Dekoration verwenden. Screenreader sagen jedes an. Eine Linie, die nur optisch ist, gehört ins CSS.- Nur mit
colorstylen. Setz den Rahmen mitborder: nonezurück und setzborder-top. - Linien mit
<br>oder Unterstrichen zeichnen. Nimm<hr>oder einen Rahmen. Wofür<br>gedacht ist, steht auf der Seite zum Zeilenumbruch. - Obsolete Attribute verwenden. Verschieb
size,width,colorundnoshadeins CSS.
Häufig gestellte Fragen
Wie füge ich in HTML eine horizontale Linie ein?
Nimm das <hr>-Tag in einer eigenen Zeile. Es ist ein Void-Element ohne schließendes Tag und zeichnet eine Linie über die volle Breite seines Containers.
Wie ändere ich die Farbe eines hr?
Entferne den Standardrahmen und zeichne deinen eigenen: hr { border: none; border-top: 2px solid #2563eb; }. Nur color zu setzen ändert sie auch, aber durch den Standardstil inset bleibt sie schattiert und zweifarbig.
Wie mache ich ein hr dicker?
Setz die Rahmenbreite: hr { border: none; border-top: 4px solid #111827; }. Das Attribut size aus alten Tutorials funktioniert in Browsern noch, ist aber obsolet, nimm also CSS.
Wofür steht hr?
Horizontal rule, also horizontale Linie. Im aktuellen HTML bedeutet es einen thematischen Umbruch: einen Themen- oder Szenenwechsel zwischen Absätzen. Screenreader sagen es als Trenner an.
Wie mache ich eine vertikale Linie in HTML?
HTML hat kein Tag für eine vertikale Linie. Gib einem Element einen Rahmen auf einer Seite, etwa border-inline-start: 2px solid #e5e7eb, oder nimm ein schmales Element mit Hintergrundfarbe in einer Flex-Reihe.