Menu

CSS Border: Rahmen mit Breite, Stil, Farbe und border-radius

Die Eigenschaft border zeichnet eine Linie um das Padding eines Elements. Hier lernst du die border-Kurzschreibweise, jeden Rahmenstil, Farben und einzelne Seiten, abgerundete Ecken mit border-radius und wie sich Rahmen von Outlines unterscheiden.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

Die border-Kurzschreibweise

border zeichnet eine Linie um ein Element, zwischen seinem Padding und seinem Margin. Die Kurzschreibweise nimmt drei Teile in beliebiger Reihenfolge: eine Breite, einen Stil und eine Farbe.

TeilEinzeleigenschaftWerteStandard
Breiteborder-width1px, 0.2em, thin, medium, thickmedium
Stilborder-stylesolid, dashed, dotted, double und weiterenone
Farbeborder-colorJede FarbecurrentColor (die Textfarbe)

Den Stil darfst du nicht weglassen. Sein Standardwert ist none, also zeichnet border: 2px #2563eb; gar nichts. Lässt du die Farbe weg, übernimmt der Rahmen die Textfarbe des Elements.

Rahmenstile

double braucht mindestens 3px, um zwei Linien zu zeigen. groove, ridge, inset und outset schattieren die Farbe für einen 3D-Look und sehen je nach Browser leicht anders aus. hidden sieht aus wie none; die beiden unterscheiden sich nur in Tabellen mit zusammengefassten Rahmen, die die Seite zu HTML-Tabellenrahmen behandelt.

Eine Seite nach der anderen

Jede Seite hat ihre eigene Kurzschreibweise (border-top, border-right, border-bottom, border-left), und jeder Teil hat Einzeleigenschaften pro Seite wie border-top-color. Die logischen Varianten, border-inline-start und border-block-end, folgen der Textrichtung:

border-color, border-width und border-style nehmen ein bis vier Werte in derselben Reihenfolge im Uhrzeigersinn wie Padding: oben, rechts, unten, links.

Abgerundete Ecken mit border-radius

border-radius rundet die Ecken des Rahmens und des Hintergrunds ab, funktioniert also auch an Elementen ganz ohne Rahmen.

WertErgebnis
border-radius: 8pxAlle Ecken um 8px abgerundet
border-radius: 50%Ein Kreis an einem quadratischen Element, eine Ellipse an einem Rechteck
border-radius: 999pxEine Pille: Die kurzen Seiten werden zu vollen Halbkreisen
border-radius: 8px 0Oben links und unten rechts 8px, die anderen beiden eckig
border-top-left-radius: 12pxNur eine Ecke
border-radius: 50% / 25%Elliptische Ecken: horizontaler Radius / vertikaler Radius

Ein Kind mit Hintergrund kann über die abgerundeten Ecken seines Elternelements hinausragen. overflow: hidden am Elternelement schneidet es an der Rundung ab.

Border vs. Outline

Eine Outline sieht aus wie ein Rahmen, wird aber außerhalb davon gezeichnet und nimmt keinen Platz ein, verschiebt also beim Hinzufügen nie etwas. Deshalb verwenden Browser Outlines für Fokusringe.

BorderOutline
Nimmt Platz einJa, Teil der BoxgrößeNein
Pro SeiteJa (border-top, ...)Nein, rundherum
Folgt border-radiusJaJa, in aktuellen Browsern
Abstand zur BoxNeinJa, outline-offset
Typischer EinsatzDesignFokusanzeigen, Debugging

Häufige Fehler

  • Kein Rahmenstil. border: 1px #111827; und border-color: red; zeichnen nichts. Gib solid (oder einen anderen Stil) an.
  • Ein Rahmen, der das Layout beim Hovern springen lässt. Reserviere den Platz mit einem transparenten Rahmen oder nimm eine Outline oder box-shadow.
  • Den Rahmen in der Breite vergessen. Ein Element mit width: 100% und Rahmen läuft unter content-box aus seinem Container heraus. Nimm box-sizing: border-box.
  • border-radius mit einem Kind, das aus den Ecken ragt. Gib dem abgerundeten Elternelement overflow: hidden.
  • Fokus-Outlines mit outline: none entfernen. Tastaturnutzer brauchen sie; gestalte die Outline um, statt sie zu löschen.

Häufig gestellte Fragen

Wie füge ich in CSS einen Rahmen hinzu?

Nimm die Kurzschreibweise mit Breite, Stil und Farbe: border: 2px solid #2563eb;. Der Stil ist der wichtigste Teil: Ohne ihn ist der Rahmenstil none, und es wird kein Rahmen gezeichnet.

Warum wird mein CSS-Rahmen nicht angezeigt?

Fast immer, weil kein Rahmenstil gesetzt ist. border: 2px #2563eb; oder border-color: red; allein zeichnen nichts, weil der Standardwert von border-style none ist. Füge solid, dashed oder einen anderen Stil hinzu.

Wie mache ich abgerundete Ecken in CSS?

Mit border-radius: border-radius: 8px; rundet alle vier Ecken ab. border-radius: 50%; an einem Quadrat ergibt einen Kreis, und ein großer Wert wie 999px eine Pillenform. Es rundet auch den Hintergrund ab, sogar ohne Rahmen.

Wie setze ich einen Rahmen nur auf einer Seite?

Mit einer Seiten-Eigenschaft: border-bottom: 2px solid #e5e7eb;, oder border-inline-start für die Seite, an der der Text beginnt. Das funktioniert auch für Sprachen, die von rechts nach links laufen.

Was ist der Unterschied zwischen border und outline?

Ein Rahmen gehört zur Box: Er nimmt Platz ein und ändert die Größe des Elements. Eine Outline wird außerhalb des Rahmens gezeichnet, ohne Platz einzunehmen, lässt sich nicht pro Seite setzen und ist das, was Browser für Fokusringe verwenden. Beide folgen in aktuellen Browsern border-radius.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S