W3docs

CSS border-image Eigenschaft

Die CSS-Kurzschreibweise border-image ermöglicht die Verwendung eines Bildes als Rahmen um ein Element. Beispiele und Live-Demo.

Die Kurzschreibweise border-image ermöglicht es, ein Bild — oder einen CSS-Farbverlauf — als Rahmen eines Elements zu verwenden, anstelle einer einfachen durchgezogenen Linie. Sie gehört zu den CSS3-Eigenschaften.

Diese Seite erklärt, wie die Eigenschaft funktioniert (das Neun-Segment-Modell dahinter), die Syntax der Kurzschreibweise, mehrere ausführbare Beispiele und wann der Einsatz von border-image sinnvoll ist.

Wie border-image funktioniert: das Neun-Segment-Modell

Der Trick hinter border-image ist das Neun-Segment-Schneiden (Nine-Slicing). Der Browser nimmt das Quellbild und schneidet es mit vier Linien — zwei horizontalen, zwei vertikalen — in neun Bereiche:

  • 4 Ecken werden in den vier Ecken des Elements platziert und werden nie gestreckt oder wiederholt.
  • 4 Kanten (oben, rechts, unten, links) füllen den Raum zwischen den Ecken. Diese werden gestreckt, wiederholt, abgerundet oder mit Abstand verteilt, abhängig von border-image-repeat.
  • 1 Mitte wird standardmäßig verworfen, sodass der Hintergrund des Elements durchscheint. Fügen Sie das Schlüsselwort fill zu border-image-slice hinzu, um sie beizubehalten.

Die Position dieser Schnittlinien wird durch border-image-slice gesteuert. Dieses Modell ermöglicht es, dass ein kleines Bild eines dekorativen Rahmens eine Box beliebiger Größe umschließen kann, ohne dass die Ecken verzerrt werden.

Wichtig: border-image wird nur gezeichnet, wenn das Element tatsächlich einen Rahmen hat. Sie müssen dem Element einen border-style (oder die Kurzschreibweise border) ungleich none zuweisen — zum Beispiel border: 10px solid transparent; — sonst wird nichts angezeigt.

Die Kurzschreibweise und ihre Untereigenschaften

Diese Kurzschreibweise kombiniert mehrere einzelne border-image-Eigenschaften. Ausgelassene Werte werden auf ihre Anfangswerte zurückgesetzt. Hinweise zu jeder Untereigenschaft finden Sie unten:

  • border-image-source - Wenn der Wert "none" ist oder das Bild nicht angezeigt werden kann, werden die Rahmenstile verwendet.
  • border-image-slice - Der mittlere Teil des Bildes wird als vollständig transparent behandelt, sofern der Wert "fill" nicht gesetzt ist.
  • border-image-width - Wenn der Wert dieser Eigenschaft größer als die border-width des Elements ist, wird das Rahmenbild über den padding- (und/oder content-) Rand hinaus erweitert. Beachten Sie außerdem, dass diese Eigenschaft mit einem, zwei, drei oder vier Werten angegeben werden kann.
  • border-image-outset - Sie kann ebenfalls mit einem, zwei, drei oder vier Werten angegeben werden.
  • border-image-repeat - Sie kann durch zwei Werte angegeben werden. Wird der zweite Wert weggelassen, wird er als identisch mit dem ersten angenommen. Wenn nur ein Wert gesetzt wird, gilt das gleiche Verhalten für alle vier Seiten; werden zwei Werte gesetzt, gilt der erste für oben und unten, der zweite für links und rechts.
EigenschaftWert
Anfangswertnone 100% 1 0 stretch
Gilt fürAlle Elemente, außer interne Tabellenelemente, wenn border-collapse auf "collapse" gesetzt ist. Gilt auch für ::first-letter.
VererbbarNein
AnimierbarNein
VersionCSS3
DOM Syntaxobject.style.borderImage = "url(border.png) 30 round"

Syntax

Syntax der CSS border-image Eigenschaft

border-image: source slice width outset repeat | initial | inherit;

Beispiel der border-image Eigenschaft:

Beispiel der CSS border-image Eigenschaft

<!DOCTYPE html>
<html>
  <head>
    <title>The title of the document</title>
    <style>
      .border {
        border: 10px solid transparent;
        padding: 15px;
        border-image: url(/uploads/media/default/0001/01/812bf6a749522b8185c1beee20dd99dd6c6c87da.jpeg) round;
        border-image-slice: 10%;
      }
    </style>
  </head>
  <body>
    <h2>Border-image-slice example</h2>
    <p class="border">border-image: 10% round;</p>
    <p>Here is the original image used:</p>
    <img src="/uploads/media/default/0001/01/812bf6a749522b8185c1beee20dd99dd6c6c87da.jpeg" style="width:50%" />
  </body>
</html>

Ergebnis

SS border-image Property

Beispiel der border-image Eigenschaft mit mehreren Werten:

Beispiel der CSS border-image Eigenschaft mit verschiedenen Werten

<!DOCTYPE html>
<html>
  <head>
    <title>The title of the document</title>
    <style>
      .border {
        border: 10px solid transparent;
        padding: 15px;
        border-image: url(/uploads/media/default/0001/01/812bf6a749522b8185c1beee20dd99dd6c6c87da.jpeg) round;
        border-image-slice: 30%;
        border-image-repeat: repeat;
        border-image-width: 15px;
      }
      .border2 {
        border: 10px solid transparent;
        padding: 15px;
        border-image: url(/uploads/media/default/0001/01/812bf6a749522b8185c1beee20dd99dd6c6c87da.jpeg) round;
        border-image-slice: 20%;
        border-image-repeat: round;
        border-image-width: 10px;
      }
      .border3 {
        border: 10px solid transparent;
        padding: 15px;
        border-image: url(/uploads/media/default/0001/01/812bf6a749522b8185c1beee20dd99dd6c6c87da.jpeg) round;
        border-image-slice: 15%;
        border-image-repeat: space;
        border-image-width: 20px;
      }
    </style>
  </head>
  <body>
    <h2>Border-image example with all values.</h2>
    <p class="border">border-image: 30% 15px repeat</p>
    <p class="border2">border-image: 20% 10px round;</p>
    <p class="border3">border-image: 15% 20px space;</p>
    <p>Here is the original image used:</p>
    <img src="/uploads/media/default/0001/01/812bf6a749522b8185c1beee20dd99dd6c6c87da.jpeg" style="width:50%" />
  </body>
</html>

Verwendung eines CSS-Farbverlaufs als Rahmen

border-image-source akzeptiert neben einer URL auch einen Farbverlauf, sodass Sie einen farbigen Rahmen ganz ohne Bilddatei erstellen können. Der Farbverlauf wird genau wie ein Bild behandelt und auf dieselbe Weise geschnitten.

<!DOCTYPE html>
<html>
  <head>
    <title>The title of the document</title>
    <style>
      .gradient-border {
        border: 12px solid transparent;
        padding: 15px;
        border-image: linear-gradient(45deg, #1095c1, #f7df1e) 1;
      }
    </style>
  </head>
  <body>
    <p class="gradient-border">A border drawn from a CSS gradient.</p>
  </body>
</html>

Die 1 nach dem Farbverlauf ist der border-image-slice-Wert. Da ein Farbverlauf keine realen Ränder hat, die geschützt werden müssen, ordnet das Schneiden bei 1 die vier Kanten und Ecken ohne Verzerrung dem Rahmen zu.

Wann border-image verwenden

Greifen Sie auf border-image zurück, wenn eine einfache Volltonfarbe nicht ausreicht:

  • Dekorative oder thematische Rahmen — kunstvolle, handgezeichnete oder Rissen-Papier-Rahmen, die mit border-style nicht möglich wären.
  • Farbverlauf-Rahmen — siehe das obige Beispiel; viel einfacher als die Nachahmung mit einem Wrapper-Element und background-clip.
  • Sich wiederholende Muster — eine kleine Kachel, die dank des Neun-Segment-Modells Boxen jeder Größe umrahmt.

Für einfache abgerundete Ecken verwenden Sie border-radius; für eine normale farbige Linie verwenden Sie die standardmäßige border-Kurzschreibweise — diese sind schlanker und animierbar, während border-image es nicht ist.

Werte

WertBeschreibungAusprobieren
border-image-sourceGibt das Quellbild an, das zum Erstellen des Rahmenbildes verwendet wird. Dies kann eine URL, ein Data-URI, ein CSS-Farbverlauf oder ein eingebettetes SVG sein.
border-image-sliceGibt an, wie das durch border-image-source festgelegte Bild geschnitten wird. Das Bild wird immer in neun Abschnitte unterteilt: vier Ecken, vier Kanten und die Mitte.Ausprobieren »
border-image-widthGibt die Breite des Rahmenbildes an.
border-image-repeatGibt an, ob das Rahmenbild wiederholt, abgerundet oder gestreckt wird.Ausprobieren »
initialSetzt die Eigenschaft auf ihren Standardwert.
inheritErbt die Eigenschaft vom übergeordneten Element.

Browserunterstützung

border-image wird von allen modernen Browsern unterstützt (Chrome, Edge, Firefox, Safari und Opera). Da es auf die von Ihnen festgelegten border-style- und border-color-Werte zurückfällt, können Sie es als progressive Verbesserung über einem normalen Rahmen verwenden: Ältere oder nicht unterstützende Browser zeigen den einfachen Rahmen, neuere Browser zeigen das Bild.

Übungen

Übung
Was gilt laut dem Inhalt auf der angegebenen URL für die CSS border-image Eigenschaft?
Was gilt laut dem Inhalt auf der angegebenen URL für die CSS border-image Eigenschaft?
Was this page helpful?