CSS-Dreieck-Generator

Erzeugen Sie reine CSS-Dreiecke mit dem Border-Trick. Wählen Sie Richtung, Größe und Farbe.

100px
100px

CSS-Code

Der Border-Trick, ein 25 Jahre alter CSS-Hack, der noch funktioniert

Die CSS-Triangle-Technik nutzt aus, wie der CSS-Border-Render-Algorithmus benachbarte Borders behandelt. Wenn zwei Borders an einer Ecke aufeinandertreffen, wird die Grenze zwischen ihnen als diagonale Linie im Winkel der Eck-Halbierenden gezeichnet. Bei einem Element normaler Größe ist die Ecke klein und die Diagonale kaum sichtbar. Aber wenn Sie Breite und Höhe des Elements auf null setzen und ihm dicke Borders geben, übernehmen die Ecken den gesamten visuellen Raum, und was eine unsichtbare Diagonale war, wird zur sichtbaren Kante eines Dreiecks. Machen Sie drei der vier Borders transparent, lassen die vierte gefärbt, und Sie haben ein einzelnes Dreieck gezeichnet, das von der gefärbten Seite weg zeigt. Die Technik wurde um 2007–2008 in den frühen CSS-tricks-Artikeln von Chris Coyier und anderen breit dokumentiert; sie ist seitdem ein Grundpfeiler des Web-Designer-Werkzeugkastens, weil sie eine scharfe, skalierbare, in Hex einfärbbare Form erzeugt, ohne SVG, ohne PNG, ohne zusätzlichen HTTP-Request, ohne komplizierten CSS-Code. Die Mathematik ist einfach, aber kontraintuitiv (die Höhe des Dreiecks ist die Border-Breite der gefärbten Seite; seine Grundlinie ist die doppelte Border-Breite der angrenzenden transparenten Seite). Dieser Generator übernimmt das Rechnen, damit Sie Slider ziehen können statt Border-Breiten auszurechnen.

Moderne Alternativen, clip-path, SVG, conic-gradient

2026 hat das Border-Trick-Dreieck Konkurrenz. CSS clip-path mit der polygon()-Funktion (CSS Masking Module Level 1, Baseline-Browser-Support seit 2017) lässt Sie jedes Element an ein beliebiges Polygon clippen: clip-path: polygon(50% 0, 100% 100%, 0 100%) zeichnet ein nach oben zeigendes Dreieck auf jedem Element. clip-path ist flexibler (beliebig viele Vertices, nicht nur drei; funktioniert auf jedem Element mit Inhalt, nicht nur leeren divs), komponiert besser mit Transformationen und Animationen und unterstützt abgerundete Ecken über die neuere shape()-Funktion. Inline-SVG (<svg><polygon points="50,0 100,100 0,100"/></svg>) gibt Ihnen die meiste Kontrolle, Konturen, Füllungen, Verläufe, Animationen über SMIL oder CSS, Barrierefreiheit über <title>-Elemente. conic-gradient kann über geschickt platzierte Farbstops Dreiecksformen erzeugen, das ist aber eher Kuriosität als praktisches Muster. Das Border-Trick-Dreieck bleibt die richtige Wahl für den einfach-dekorativen Fall (Tooltip-Pointer, Dropdown-Carets, Sprechblasen-Schwänze), wo Einfachheit und Null-Overhead wichtiger sind als Flexibilität; clip-path ist besser, wenn das Dreieck Teil einer komplexeren Form ist, wenn Sie Text hineinlegen müssen oder wenn das Design abgerundete Ecken braucht.

Wo CSS-Dreiecke ihren Wert beweisen

Barrierefreiheits-Überlegungen

CSS-Dreiecke sind reine visuelle Dekoration, sie haben keine semantische Bedeutung und keine Präsenz im Accessibility-Tree. Screenreader kündigen sie nicht an. Für rein dekorative Verwendung (der Sprechblasen-Schwanz, der Breadcrumb-Trenner) ist das das richtige Verhalten. Für Dreiecke, die Bedeutung tragen (ein Pfeil, der auf den aktiven Abschnitt zeigt, ein Dropdown-Caret, das „zum Aufklappen klicken“ signalisiert), muss die Bedeutung anderweitig kommuniziert werden: ein aria-expanded-Attribut auf einem Dropdown-Trigger, ein sichtbares Textlabel, ein aria-label auf dem Button. Verlassen Sie sich nicht darauf, dass ein CSS-Dreieck Zustand kommuniziert; behandeln Sie es als visuelle Verstärkung eines Zustands, der semantisch über andere Attribute kommuniziert wird. Der Inhalt der CSS-::before- und ::after-Pseudo-Elemente wird von Screenreadern in der Regel nicht vorgelesen, was für dekorative Formen passend ist.

Dreieck-Typen, die dieser Generator erzeugt

Verwandte Tools