CSS border-image-source Eigenschaft
Die CSS-Eigenschaft border-image-source legt ein Bild als Rahmen eines Elements fest. Beispiele und zum Ausprobieren.
Die CSS-Eigenschaft border-image-source legt das Bild fest, das zum Zeichnen des Rahmens eines Elements verwendet wird, anstatt des regulären border-style. Sie beantwortet die Frage „Welches Bild soll in Abschnitte unterteilt und rund um die Box platziert werden?", während die ergänzenden Eigenschaften bestimmen, wie dieses Bild ausgeschnitten und angeordnet wird.
Diese Seite beschreibt, welche Werte border-image-source akzeptiert, wie sie mit den anderen border-image-*-Eigenschaften zusammenarbeitet, welche Fallstricke dazu führen können, dass ein Rahmenbild lautlos verschwindet, und zeigt ausführbare Beispiele, die Sie bearbeiten können.
border-image-source ist eine der CSS3-Eigenschaften und wird fast immer zusammen mit border-image-slice über die Kurzschreibweise border-image festgelegt.
Wann Sie sie verwenden würden
Greifen Sie auf ein Rahmenbild zurück, wenn ein einfacher border das gewünschte Aussehen nicht ausdrücken kann – ein dekorativer Rahmen, ein Band, eine handgezeichnete Kante oder ein Farbverlauf-Umriss. Da die Quelle ein beliebiges Bild sein kann, einschließlich eines CSS-Farbverlaufs, erhalten Sie Effekte, die border-color allein nicht erzeugen kann.
Wie border-image-source mit den anderen Eigenschaften zusammenarbeitet
border-image-source benennt lediglich das Bild. Vier Geschwistereigenschaften steuern den Rest, und ein Rahmenbild wird erst gerendert, wenn auch border-image-slice gesetzt ist:
border-image-slice— unterteilt die Quelle in 9 Bereiche (4 Ecken, 4 Kanten, 1 Mitte).border-image-width— wie dick das gezeichnete Rahmenbild ist.border-image-outset— wie weit das Bild über die Rahmenbox hinausragt.css-border-image-repeat-property— ob die Kantenbereichestretch(gestreckt),repeat(wiederholt) oderround(gerundet) werden.
Wichtige Fallstricke
- Setzen Sie zuerst einen
border. Ein Rahmenbild füllt den Bereich, der durch den Rahmen des Elements definiert ist, daher benötigen Sie weiterhin eineborder-width(üblicherweiseborder: 10px solid transparent;). Ohne Rahmenbreite gibt es nichts, in das gemalt werden kann. border-image-sliceist erforderlich. Wenn nur die Quelle gesetzt wird, wird nichts angezeigt; der Browser benötigt Slice-Werte, um zu wissen, wo sich die Ecken befinden.noneoder ein fehlgeschlagenes Laden greift aufborder-stylezurück. Wenn das Bild nicht angezeigt werden kann, werden die regulären Rahmenstile verwendet – geben Sie dem Element einen sichtbarenborder-styleals Sicherheitsnetz.
| Anfangswert | none |
|---|---|
| Gilt für | Alle Elemente, außer interne Tabellenelemente, wenn border-collapse auf "collapse" gesetzt ist. Gilt auch für ::first-letter. |
| Vererbt | Nein. |
| Animierbar | Nein. |
| Version | CSS3 |
| DOM Syntax | object.style.borderImageSource = "url()"; |
Syntax
CSS border-image-source Werte
border-image-source: none | image | initial | inherit;Beispiel der border-image-source-Eigenschaft:
CSS border-image-source Codebeispiel
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.border {
border: 10px solid transparent;
padding: 15px;
border-image-source: url("/uploads/media/default/0001/01/812bf6a749522b8185c1beee20dd99dd6c6c87da.jpeg");
border-image-slice: 15;
}
</style>
</head>
<body>
<h2>Border-image-source property example</h2>
<p class="border">Hello World!</p>
<p>Here is the original image:</p>
<img src="/uploads/media/default/0001/01/812bf6a749522b8185c1beee20dd99dd6c6c87da.jpeg" alt="Border image" style="width:50%" />
</body>
</html>Ergebnis

Beispiel mit einem CSS-Farbverlauf als Quelle
Die Quelle muss keine Datei sein – jedes CSS-Bild funktioniert, einschließlich Farbverläufen. Damit wird ein bunter Rahmen ganz ohne Bild-Asset gezeichnet:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.gradient-border {
border: 12px solid transparent;
padding: 15px;
border-image-source: linear-gradient(45deg, #6610f2, #20c997);
border-image-slice: 1;
}
</style>
</head>
<body>
<p class="gradient-border">A border drawn from a CSS gradient.</p>
</body>
</html>Hier schneidet border-image-slice: 1 ein einzelnes Pixel aus, was für einen gleichmäßigen Farbverlauf ausreicht, da dieser sich über jede Kante fortsetzt.
Werte
| Wert | Beschreibung |
|---|---|
| none | Es wird kein Bild verwendet; das Element greift auf seinen border-style zurück. Dies ist der Standardwert. |
| image | Beliebiges CSS <image>: eine url() zu einer Datei oder ein Farbverlauf wie linear-gradient(...) / radial-gradient(...). |
| initial | Setzt die Eigenschaft auf ihren Standardwert (none). |
| inherit | Erbt den Wert vom übergeordneten Element. |
Verwandte Eigenschaften
- border-image — die Kurzschreibweise für alle fünf
border-image-*-Eigenschaften. - border-image-slice — erforderlich, um das Bild tatsächlich zu rendern.
- border-image-width und border-image-outset — Größe und Überlauf.
- border-image-repeat — wie die Kanten gekachelt werden.