Verlauf-Ränder in CSS

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Nehmen wir an, Sie benötigen einen Verlauf-Rand um ein Element. Meine Gedanken gehen wie folgt:

  • Es gibt keine einfache, offensichtliche CSS-API dafür.
  • Ich erstelle einfach ein Wrapper-Element mit einem Hintergrund `linear-gradient`, dann wird ein inneres Element den Großteil dieses Hintergrunds verdecken, bis auf eine dünne Polsterlinie darum herum.

Vielleicht so:

Wenn Ihnen die Idee eines Wrapper-Elements widerstrebt, könnten Sie ein Pseudo-Element verwenden, solange ein negativer z-index-Wert in Ordnung ist (das wäre er nicht, wenn es viel Verschachtelung mit Elternelementen mit eigenen Hintergründen gäbe).

Hier ist ein Beispiel von Stephen Shaw, das dabei auch `border-radius` berücksichtigt.

Sie könnten sogar einzelne Seiten als dünne Pseudo-Element-Rechtecke platzieren, wenn Sie nicht alle vier Seiten benötigen.

Aber vergessen Sie nicht `border-image`, vielleicht die obskurste CSS-Eigenschaft aller Zeiten. Sie können sie verwenden, um Verlauf-Ränder auch an einzelnen Seiten zu erhalten.

Die Verwendung von `border-image` und `border-image-slice` ist wahrscheinlich die einfachste Syntax für einen Verlauf-Rand, leider ist sie mit `border-radius` inkompatibel.

DigitialOcean dokumentiert denselben Ansatz in einem anderen Tutorial.