112 of 313 menu

Właściwość border-image

Właściwość border-image ustawia obrazek dla obramowania, jest właściwością skrótową dla właściwości border-image-source, border-image-slice, border-image-repeat, border-image-width i border-image-outset. Jednak właściwość-skrót pojawiła się w CSS wcześniej niż właściwości składowe i dlatego jest obsługiwana w większej liczbie starych przeglądarek.

Składnia

selektor { border-image: url(ścieżka do obrazka) przesunięcie/grubość/odsunięcie powtarzanie; }

Opis

Obrazek, który chcemy zastosować dla obramowania, musi być specjalnie zaprojektowany: 4 mini obrazki dla narożników i 4 obrazki dla boków. Przykład takiego obrazka:

W tym przypadku część centralna pozostaje biała (ponieważ nie chcemy, aby nakładała się na tło elementu). Przykład obrazka z wypełnioną częścią centralną:

Wartość slice wskazuje przeglądarce, które części obrazka pójdą na narożniki, a które na boki (i która część będzie centralna). Na narożniki idą 4 części, na boki idą 4 części i jedna część (centralna) idzie na tło elementu (opcjonalnie, słowo kluczowe fill).

Obrazek jest "rozcinany" na kawałki w następujący sposób: dla wartości slice podaje się od jednej do czterech wartości. Przeanalizujmy to na przykładzie. Niech zostaną podane następujące wartości: 10 20 30 40 (piksele px nie są podawane, jest to związane z tym, że obrazek może być zarówno rastrowy jak i wektorowy). Wartości mówią o następującym: 10 odciąć z góry, 20 odciąć z prawej, 30 odciąć z dołu, 40 odciąć z lewej. Która część obrazka trafi do lewego górnego narożnika? Będzie to kawałek: 10 z góry, 40 z lewej. Do prawego górnego narożnika trafi 10 z góry, 20 z prawej. I tak dalej.

Najczęściej obrazek jest symetryczny (jak romby powyżej) i musimy odciąć równe kawałki na narożniki. W takim przypadku podaje się jedną wartość, która będzie określać takie same przesunięcia ze wszystkich stron. Aby odciąć pomarańczowe romby, podamy slice jako 26 (ponieważ pomarańczowy romb ma rozmiar 26px na 26px). Żółte romby trafią na linie obramowania i stanie się z nimi następująca rzecz: one lub rozciągną się na cały blok lub będą powtarzane wzdłuż obramowania (zależy od wartości 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; }

:

Właściwość border-image nie pozwala ustawić grubości obramowania elementu. Przeglądarka po prostu rozciąga obrazek wzdłuż obramowania z już istniejącą szerokością. Dlatego trzeba ją ustawić za pomocą właściwości border.

Użytkownicy starych przeglądarek (lub z wyłączonymi obrazkami) zobaczą standardową ramkę, ustawioną w border, dlatego warto ustawić jej odpowiedni styl i kolor.

Wartości

Wartość Opis
url(Ścieżka do obrazka) Ścieżka do obrazka. Więcej szczegółów patrz border-image-source.
przesunięcie Wskazuje przeglądarce, które części obrazka pójdą na narożniki, a które na boki (i która część będzie centralna). Dopuszczalne wartości: od 1-ej do 4-ech liczb | od 1-ej do 4-ech procentów. Przez spację można podać słowo kluczowe fill dodatkowo do liczb lub procentów. Więcej szczegółów patrz border-image-slice.
grubość Właściwość kontroluje szerokość widocznej części ramki, skaluje ją. Jeśli ta wartość jest większa niż szerokość border-width, obrazek ramki wpełznie pod zawartość. Dopuszczalne wartości: jednostki CSS | procenty | liczba | auto. Więcej szczegółów patrz border-image-width.
odsunięcie Ciekawa właściwość, pozwalająca odsunąć ramkę poza element. Wartości ujemne nie są obsługiwane. Dopuszczalne wartości: jednostki CSS (oprócz % (?)) | liczba dodatnia | auto. Więcej szczegółów patrz border-image-outset.
powtarzanie Określa, jak powtarzać obrazek na granicach (nie na narożnikach): wyłożyć płytkami lub rozciągnąć.
Dopuszczalne wartości: stretch | repeat | round | space.
Więcej szczegółów patrz border-image-repeat.

Wartość domyślna: none 100%/1/0 stretch (url(ścieżka do obrazka) przesunięcie/grubość/odsunięcie powtarzanie).

Przykład . border-image-repeat: wartość 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; }

:

Przykład . border-image-repeat: wartość 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; }

:

Przykład . border-image-repeat: wartość round

Teraz w stanie normalnym ustawiona jest wartość repeat, a po najechaniu - round. Zwróć uwagę, że przed najechaniem na granicę mieści się niecała liczba rombów, a po najechaniu - cała. Tak działa 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; }

:

Przykład . border-image-repeat: dwa słowa

Wartość repeat dla szerokości i stretch dla wysokości:

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

:

Przykład . Dopasowanie szerokości obrazka do szerokości obramowania

Zwiększmy border-width po najechaniu myszką, przy czym grubość border-image zostawimy taką samą. Rombry rozciągną się na całe obramowanie:

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

:

Przykład . border-image-slice

Weźmy inny obrazek, w którym różne kawałki nie są równe:

Wskażemy, które części obrazka trzeba odciąć - 25% 30% 10% 20%. Działa to tak: 25% - odstęp z góry, 30% - odstęp z prawej, 10% - odstęp z dołu, 20% - odstęp z lewej. W zasadzie tymi kawałkami odcinamy narożniki. Górny lewy narożnik będzie miał 25% z góry obrazka, i 20% z lewej. Górny prawy narożnik będzie miał 25% z góry obrazka, i 30% z prawej i tak dalej.

Również, jeśli najedziesz myszką na blok, to zadziała słowo kluczowe fill, i centralna część obrazka stanie się tłem naszego bloku:

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

:

Przykład

Zróbmy gradientowe obramowanie za pomocą gradientu liniowego:

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

:

Przykład . border-image-width

Ustawmy wartość border-image-width na 2 (obrazek obramowania stanie się 2 razy większy niż samo obramowanie) po najechaniu myszką na element (26/2 - podano po ukośniku, przy czym 26 - to wartość border-image-slice). Zwróć uwagę na to, że samo obramowanie nie zwiększyło się, a obrazek obramowania - tak, ponieważ wpełznie pod tekst:

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

:

Przykład . border-image-outset

Ustawmy wartość border-image-outset na 3 po najechaniu myszką na element. (26/1/2 - podano po drugim ukośniku, przy czym 26 - to wartość 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; }

:

Zobacz też

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć