112 of 313 menu

Svojstvo border-image

Svojstvo border-image postavlja sliku za okvir, ono je skraćeni oblik za svojstva border-image-source, border-image-slice, border-image-repeat, border-image-width i border-image-outset. Pritom je skraćeno svojstvo nastalo u CSS-u ranije od svojstava koja skraćuje i zato je podržano u većem broju starih brauzera.

Sintaksa

selektor { border-image: url(putanja do slike) pomeranje/debljina/pomeranje ponavljanje; }

Opis

Slika koju želimo da primenimo za okvir mora biti posebno uobličena: 4 mini slike za uglove i 4 slike za strane. Primer takve slike:

U ovom slučaju centralni deo je ostavljen beo (pošto ne želimo da se on pojavi na pozadini elementa). Primer slike sa popunjenim centralnim delom:

Vrednost slice govori brauzeru, koji delovi slike će ići na uglove, a koji na strane (i koji deo će biti centralni). Na uglove idu 4 dela, na strane idu 4 dela i jedan deo (centralni) ide na pozadinu elementa (opciono, ključna reč fill).

Slika se "seče" na komade na sledeći način: za vrednost slice se navodi od jedne do četiri vrednosti. Hajde da razmotrimo na primeru. Neka su navedene sledeće vrednosti: 10 20 30 40 (pikseli px se ne navode, to je povezano sa time da slika može biti i rasterska i vektorska). Vrednosti govore o sledećem: 10 odseći od vrha, 20 odseći sa desne strane, 30 odseći od dna, 40 odseći sa leve strane. Koji deo slike će pasti u gornji levi ugao? To će biti komadić: 10 od vrha, 40 sa leve strane. U desni gornji ugao će pasti 10 od vrha, 20 sa desne strane. I tako dalje.

Najčešće je slika simetrična (kao rombovi gore) i treba nam da odsečemo jednake komadiće za uglove. U tom slučaju se navodi jedna vrednost, koja će zadati jednaka pomeranja sa svih strana. Da bismo odsekli narandžaste rombove, navedemo slice kao 26 (jer narandžasti romb ima veličinu 26px na 26px). Žuti rombovi će pasti na linije okvira i sa njima će se desiti sledeće: oni će se ili rastegnuti na ceo blok ili će se ponavljati duž okvira (zavisi od vrednosti 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; }

:

Svojstvo border-image ne dozvoljava da se navede debljina okvira elementa. Brauzer jednostavno rasteže sliku duž okvira sa već postojećom širinom. Zato je treba zadati preko svojstva border.

Korisnici starih brauzera (ili sa isključenim slikama) videće standardni okvir, zadat u border, zato ima smisla da mu se zadaju odgovarajući stil i boja.

Vrednosti

Vrednost Opis
url(Putanja do slike) Putanja do slike. Više detalja pogledajte u border-image-source.
pomeranje Govori brauzeru, koji delovi slike će ići na uglove, a koji na strane (i koji deo će biti centralni). Moguće vrednosti: od 1-og do 4 brojeva | od 1-og do 4 procenata. Razmakom može da se navede ključna reč fill pored brojeva ili procenata. Više detalja pogledajte u border-image-slice.
debljina Svojstvo upravlja širinom vidljivog dela okvira, skalira ga. Ako je ova vrednost veća od širine border-width, slika okvira zavlači se pod sadržaj. Moguće vrednosti: CSS jedinice | procenti | broj | auto. Više detalja pogledajte u border-image-width.
pomeranje Zanimljivo svojstvo koje omogućava da se okvir pomera izvan granica elementa. Negativne vrednosti nisu podržane. Moguće vrednosti: CSS jedinice (osim % (?)) | pozitivan broj | auto. Više detalja pogledajte u border-image-outset.
ponavljanje Određuje kako da se ponavlja slika na okvirima (ne na uglovima): da li da se poploča ili rastegne.
Moguće vrednosti: stretch | repeat | round | space.
Više detalja pogledajte u border-image-repeat.

Podrazumevana vrednost: none 100%/1/0 stretch (url(putanja do slike) pomeranje/debljina/pomeranje ponavljanje).

Primer . border-image-repeat: vrednost 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; }

:

Primer . border-image-repeat: vrednost 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; }

:

Primer . border-image-repeat: vrednost round

Sada je u normalnom stanju postavljena vrednost repeat, a pri prelasku mišem - round. Obratite pažnju da se pre prelaska u okvir ne uklapa ceo broj rombova, a posle prelaska - ceo broj. Tako funkcioniše 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; }

:

Primer . border-image-repeat: dve reči

Vrednost repeat za širinu i stretch za visinu:

<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; }

:

Primer . Poklapanje širine slike sa širinom okvira

Povećaćemo border-width pri prelasku mišem, pri tome debljinu border-image ostavimo istom. Romboli će se rastegnuti na ceo okvir:

<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; }

:

Primer . border-image-slice

Uzmimo drugu sliku, u kojoj različiti komadi nisu jednaki:

Navedimo, koji delovi slike treba da se odseku - 25% 30% 10% 20%. Funkcioniše to ovako: 25% - pomeranje od vrha, 30% - pomeranje sa desne strane, 10% - pomeranje od dna, 20% - pomeranje sa leve strane. U suštini ovim komadima seku se uglovi. Gornji levi ugao će biti 25% od vrha slike, i 20% sa leve strane. Gornji desni ugao će biti 25% od vrha slike, i 30% sa desne strane i tako dalje.

Takođe, ako pređete mišem preko bloka, aktiviraće se ključna reč fill, i centralni deo slike će postati pozadina našeg bloka:

<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; }

:

Primer

Napravićemo gradijentni okvir pomoću linearnog gradijenta:

<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; }

:

Primer . border-image-width

Postavimo vrednost border-image-width na 2 (slika okvira će postati 2 puta veća od samog okvira) pri prelasku mišem preko elementa (26/2 - navedeno posle kosih crta, pri čemu je 26 vrednost border-image-slice). Obratite pažnju na to da se sam okvir nije povećao, a slika okvira - jeste, pošto će se ona zavući ispod teksta:

<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; }

:

Primer . border-image-outset

Postavimo vrednost border-image-outset na 3 pri prelasku mišem preko elementa. (26/1/2 - navedeno posle druge kose crte, pri čemu je 26 vrednost border-image-slice, a - 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; }

:

Pogledajte takođe

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij