border-image
är en stenografisk egenskap som låter dig använda en bild eller CSS-gradient som gränsen för ett element.
.module ( border-image: url(border.png.webp) 25 25 round; )
Den border-image
egenskap kan tillämpas på alla element, utom interna tabellelement (t ex tr, th, td) då border-collapse
är inställd på collapse
.
Egenskaper
Den enda nödvändiga egenskapen för border-image
stenografi är border-image-source
. De andra egenskaperna har som standard sina ursprungliga värden om de inte anges. Dessa är border-image
egenskaperna i ordning:
border-image-source
.module ( border-image-source: url(border.png.webp); )
Den här egenskapen anger källan för gränsbilden. Detta kan vara en URL, data URI, CSS-gradient eller inline SVG (även om support är begränsat för inline SVG, se SVG-användningsanmärkningar).
Det ursprungliga värdet är none
.
border-image-slice
.module ( border-image-source: url(border.png.webp); border-image-slice: 20; )
Värdena för den här egenskapen berättar för webbläsaren var bilden ska "skivas" för att skapa delar av gränsen. Bilden är uppdelad i 9 sektioner - de fyra hörnen, de fyra sidorna och mitten.



Om du tycker att det låter oroligt är du i gott sällskap. Det fanns en lång diskussion om ämnet på Eric Myers blogg för några år sedan där många frontend-utvecklingsstorheter vägde in.
I denna demo upprepas ett hjärta runt divens gräns. Den border-image-source
bild är en sammansatt bild av åtta av samma hjärta ikon, skivas så att hela hjärtformen används på varje sida av elementet.
Se Pen-gränsbild-demo: ikongräns av CSS-Tricks (@ css-tricks) på CodePen.
Fler användningsanmärkningar
Även om stöd för border-image
har förbättrats - det stöds unprefixed i alla nuvarande webbläsarversioner - border
är det fortfarande värt att ställa in en reservstil . Din reservgräns visas i webbläsare som inte stöder border-image
, eller om bilden inte laddas.
Till skillnad från några av de andra gränsegenskaperna border-image
kan de inte animeras. Det kan inte heller utformas med border-radius
.
Om du förklarar a border-image-source
och en border
bredd eller border-image-width
utan några skivor placeras hela den oskivade bilden i elementets fyra hörn, skalad till din angivna bredd.
Relaterad
border
border-collapse
box-sizing
Mer information
border-image
i CSS Background and Borders Module nivå 3 CRborder-image
vid MDN- border-image.com, det här verktyget låter dig ladda upp en bild och spela med gränsskivorna tills du får rätt, sedan genererar det CSS åt dig.
- Gränsbild förklaras från Dudley Storey.
Fler demonstrationer
- Även från Dudley Storey, Praktisk border-image: responsiv bildram, en CodePen-demo. Detta är ett bra exempel på att använda en gränsbild på ett förnuftigt sätt på en responsiv bild. Observera att "ramen" tas bort i mindre skärmstorlekar.
- Sanna prickade gränser med SVG och gränsbild, en penna av Lucas Lemonnier. En lösning för den fula fyrkantiga "prickade" gränsen, den här metoden ger dig riktiga runda prickar!
- lutningsknapp, en penna av CodePen-användare GSSxGSS. Ett vackert exempel på en linjär lutning som en gränsbild.
- Film Strip, en penna av Nick Pettit. Kanske inte den mest praktiska demo, det här är ett roligt, konstigt exempel på vad du kan göra med
border-image
.
Webbläsarstöd
border-image
ursprungligen krävde leverantörsprefix i alla webbläsare som stödde det. Nu fungerar det utan prefix i den senaste versionen av alla webbläsare. Den här tabellen visar både det tidigaste prefixstödet och det tidigaste oprefixerade stödet där det är tillämpligt.
Krom | Safari | Firefox | Opera | IE | Android | iOS |
---|---|---|---|---|---|---|
7 *, 16 | 3 *, 6 | 3,5 †, 15 | 10,5, 15 ‡ | 11 | 2.1 *, 4.4 | 3,2 *, 6 |
* med -webkit
prefix.
† med -moz
prefix.
‡ 10,5 - 14 serier med -o
prefix; fill
nyckelord stöds inte i någon version.