112 of 313 menu

Egenskapen border-image

Egenskapen border-image sätter en bild för ramen, det är en sammandragen egenskap för egenskaperna border-image-source, border-image-slice, border-image-repeat, border-image-width och border-image-outset. Den sammandragna egenskapen dök upp i CSS tidigare än de sammandragna egenskaperna och stöds därför i ett större antal äldre webbläsare.

Syntax

selector { border-image: url(sökväg till bilden) offset/bredd/utskjutning upprepning; }

Beskrivning

Bilden som vi vill använda för ramen måste vara utformad på ett speciellt sätt: 4 mini bilder för hörnen och 4 bilder för sidorna. Exempel på en sådan bild:

I det här fallet är den centrala delen lämnad vit (eftersom vi inte vill att den ska hamna på elementets bakgrund). Exempel på bild med ifylld central del:

Värdet slice talar om för webbläsaren, vilka delar av bilden som ska gå till hörnen, och vilka som ska gå till sidorna (och vilken del som blir den centrala). Till hörnen går 4 delar, till sidorna går 4 delar och en del (den centrala) går till elementets bakgrund (valfritt, nyckelordet fill).

Bilden "skärs upp" i bitar på följande sätt: för värdet slice anges ett till fyra värden. Låt oss gå igenom det med ett exempel. Låt oss anta att följande värden anges: 10 20 30 40 (pixlar px anges inte, detta beror på att bilden kan vara både raster- och vektorbaserad). Värdena säger följande: 10 skär av uppifrån, 20 skär av till höger, 30 skär av underifrån, 40 skär av till vänster. Vilken del av bilden hamnar i det vänstra övre hörnet? Det blir biten: 10 uppifrån, 40 till vänster. I det högra övre hörnet hamnar 10 uppifrån, 20 till höger. Och så vidare.

Oftast är bilden symmetrisk (som romberna ovan) och vi behöver skära av lika stora bitar för hörnen. I så fall anges ett värde, som kommer att sätta samma avstånd från alla sidor. För att skära av de orange romberna, sätter vi slice till 26 (eftersom den orange romben har storleken 26px med 26px). De gula romberna hamnar på linjerna i ramen och med dem kommer följande att hända: de kommer antingen att sträckas ut över hela blocket eller att upprepas längs ramen (beror på värdet repeat):

<div id="elem"></div> #elem { border-image-source: url("image.png"); border-image-slice: 26; border-image-repeat: stretch; border-style: solid; border-width: 26px; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

<div id="elem"></div> #elem { border-image-source: url("image.png"); border-image-slice: 26; border-image-repeat: repeat; border-style: solid; border-width: 26px; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Egenskapen border-image tillåter inte att ange elementets rambredd. Webbläsaren sträcker helt enkelt ut bilden längs ramen med den befintliga bredden. Därför måste den sättas via egenskapen border.

Användare med äldre webbläsare (eller med avstängda bilder) kommer att se en standardram, satt i border, så det är vettigt att sätta lämplig stil och färg på den.

Värden

Värde Beskrivning
url(Sökväg till bild) Sökväg till bilden. Se mer detaljerat border-image-source.
offset Talar om för webbläsaren vilka delar av bilden som ska gå till hörnen, och vilka som ska gå till sidorna (och vilken del som blir den centrala). Möjliga värden: från 1 till 4 tal | från 1 till 4 procent. Genom mellanslag kan nyckelordet fill sättas utöver tal eller procent. Se mer detaljerat border-image-slice.
bredd Egenskapen styr bredden på den synliga delen av ramen, skalar den. Om detta värde är större än bredden på border-width, kommer bilden på ramen att krypa in under innehållet. Möjliga värden: CSS-enheter | procent | tal | auto. Se mer detaljerat border-image-width.
utskjutning Intressant egenskap som låter dig flytta ramen utanför elementet. Negativa värden stöds inte. Möjliga värden: CSS-enheter (förutom % (?)) | positivt tal | auto. Se mer detaljerat border-image-outset.
upprepning Anger hur bilden ska upprepas på ramarna (inte på hörnen): mosaiklägga eller sträcka ut.
Möjliga värden: stretch | repeat | round | space.
Se mer detaljerat border-image-repeat.

Standardvärde: none 100%/1/0 stretch (url(sökväg till bild) offset/bredd/utskjutning upprepning).

Exempel . border-image-repeat: värdet repeat

<div id="elem"></div> #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 repeat; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Exempel . border-image-repeat: värdet stretch

<div id="elem"></div> #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 stretch; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Exempel . border-image-repeat: värdet round

Just nu är i normalt tillstånd inställt värde repeat, och vid hovring - round. Lägg märke till att före hovring i ramen ryms det inte ett helt antal romber, men efter hovring - ett helt antal. Så fungerar round:

<div id="elem"></div> #elem:hover { border-image: url("image.png") 26 round; } #elem { border-style: solid; border-width: 42px; border-image: url("image.png") 26 repeat; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Exempel . border-image-repeat: två ord

Värde repeat för bredd och stretch för höjd:

<div id="elem"></div> #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 repeat stretch; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Exempel . Överensstämmelse mellan bildens bredd och ramens bredd

Låt oss öka border-width vid hovring med musen, samtidigt som vi lämnar tjockleken på border-image oförändrad. Romberna kommer att sträckas ut över hela ramen:

<div id="elem"></div> #elem:hover { border-width: 52px; } #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 repeat; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Exempel . border-image-slice

Låt oss ta en annan bild, där de olika bitarna inte är lika:

Låt oss ange vilka delar av bilden som ska skäras av - 25% 30% 10% 20%. Det fungerar så här: 25% - avstånd uppifrån, 30% - avstånd till höger, 10% - avstånd underifrån, 20% - avstånd till vänster. I grund och botten skär vi av hörnen med dessa bitar. Det övre vänstra hörnet blir 25% från bildens övre kant, och 20% från vänster kant. Det övre högra hörnet blir 25% från bildens övre kant, och 30% från höger kant, och så vidare.

Om du även hovrar med musen över blocket, så aktiveras nyckelordet fill, och den centrala delen av bilden blir bakgrunden i vårt block:

<div id="elem"></div> #elem:hover { border-image: url("image.png") fill 25% 30% 10% 20% stretch; } #elem { border-style: solid; border-width: 52px; border-image: url("image.png") 25% 30% 10% 20% stretch; width: 200px; height: 200px; margin: 0 auto; }

:

Exempel

Låt oss skapa en gradientram med hjälp av en linjär gradient:

<div id="elem"></div> #elem { background: green; border-image: linear-gradient(to bottom, red, blue) 30; border-width: 30px; border-style: solid; width: 200px; height: 200px; margin: 0 auto; }

:

Exempel . border-image-width

Låt oss sätta värdet border-image-width till 2 (bilden på ramen blir 2 gånger större än själva ramen) vid hovring med musen över elementet (26/2 - angavs efter snedstreck, medan 26 är värdet för border-image-slice). Lägg märke till att själva ramen inte ökade, men bilden på ramen - gjorde det, eftersom den kommer att krypa in under texten:

<div id="elem"></div> #elem:hover { border-image: url("image.png") 26/2 repeat; } #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 repeat; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Exempel . border-image-outset

Låt oss sätta värdet border-image-outset till 3 vid hovring med musen över elementet. (26/1/2 - angavs efter det andra snedstrecket, medan 26 är värdet för border-image-slice, och - 1 - border-image-width):

<div id="elem"></div> #elem:hover { border-image: url("image.png") 26/1/3 repeat; } #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 repeat; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Se även

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa