Obrázek na pozadí
Na pozadí prvku se dá umístit i obrázek. Slouží k tomu vlastnost
background-image
, jejíž hodnotou je adresa (URL) vkládaného
obrázku. Zapisuje se v následujícím tvaru:
background-image: url("adresa");
Uvnitř závorek můžete místo dvojitých uvozovek použít i jednoduché
(apostrofy), nebo je zcela vynechat. Pokud jako URL použijete jen relativní
cestu – například url(pozadi.gif)
– chápe se
jako relativní vůči URL stylového předpisu souboru, jenž ji používá. Pokud styl
vkládáte do stránky z externího souboru, budou lokátory obrázků ve stylu
určovány relativně vůči adrese stylu, nikoli vůči adrese stránky.
Poloha
Vlastnost background-position
řídí polohu obrázku v rámci
plochy dané prvkem. Můžete ji ovládat ve směru vodorovném i svislém. Pro
zadávání hodnot máte k dispozici tři alternativy:
- klíčová slova
left
(doleva),right
(doprava),top
(nahoru),bottom
(dolů) acenter
(doprostřed). Můžete použít kombinaci, napříkladbackground-position: top left;
umístí obrázek do levého horního rohu. Použijete-li jen jedno slovo, ve druhém směru se automaticky doplní
center
. Takže umístění doprostřed ke spodnímu okraji zajistíbackground-position: bottom;
- přesná vzdálenost
uvedená v některé z jednotek podporovaných CSS. Udává vzdálenost levého horního rohu obrázku od levého horního rohu plochy pozadí prvku. Jako první se uvádí posunutí ve vodorovném směru. Chcete-li obrázek umístit o 100 pixelů doprava a o 20 pixelů dolů, použijte
background-position: 100px 20px;
- procenta
Slovní popis je poněkud krkolomný, ale ve skutečnosti se chovají celkem přirozeně. Předepíšete-li třeba
background-position: 25% 50%;
bude bod obrázku, který je vzdálen o čtvrtinu jeho šířky od levého okraje a o polovinu výšky od horního, umístěn na bod pozadí, jenž je také vzdálen o čtvrtinu šířky pozadí od levého okraje a v polovině jeho výšky.
Důsledkem je, že napíšete-li 0%, znamená to totéž co
left
čitop
, 50% je ekvivalentnícenter
a 100% má stejný efekt jakorigth
čibottom
. Stejně jako u absolutních rozměrů i zde se jako první uvádí vodorovná pozice a jako druhá svislá.
Pokud polohu neuvedete, umístí se obrázek do levého horního rohu.
Opakování
Dalším důležitým aspektem pro obrázek v pozadí je, zda se má či nemá
opakovat. Obrázkem můžete „vydlaždičkovat“ celou plochu, nebo jej
naopak umístit jen jednou na určité místo. Rozhoduje o tom vlastnost
background-repeat
s těmito hodnotami:
repeat
– opakovat obrázek v obou směrech a pokrýt tak celou plochu prvkuno-repeat
– umístit obrázek jen jednourepeat-x
– opakovat obrázek jen ve vodorovném směrurepeat-y
– opakovat obrázek jen ve svislém směru
Opakování lze kombinovat s výše popsaným určením polohy. Použijete-li obě vlastnosti, první exemplář obrázku se umístí do vámi předepsané pozice a od něj pak začne opakování.
Výchozí hodnotou je repeat
– neřeknete-li jinak,
vyplní se celé pozadí prvku opakovanými výskyty obrázku.
Pokud obrázek – ať už jednotlivý, či některé jeho opakované exempláře – přesáhne plochu prvku, jehož pozadí tvoří, ořízne se a jeho přesahující část nebude zobrazena.
Podívejte se na příklad jednoduchého opakování a příklad opakování v jednom směru.
Spojení s textem či oknem
Poslední zajímavou vlastností pro pozadí je
background-attachment
. Rozhoduje o tom, zda se obrázek bude
posouvat společně s obsahem stránky. Má jen dvě možné hodnoty:
scroll
znamená, že obrázek je spojen s obsahem stránky a bude-li
se obsah v okně prohlížeče posouvat, posune se s ním. Naproti tomu
fixed
obrázek „přilepí“ k oknu prohlížeče a i při
posunech jeho obsahu si zachová svou pozici.
Výchozí hodnotou je scroll
, protože je častěji potřeba, aby se
obrázek posouval společně s obsahem prvku. Použití fixed
vidíte
právě na těchto stránkách – má vykukující hlava je realizována touto
skupinou vlastností:
background-image: url("/~satrapa/img/pozadi.gif"); background-color: #ffe6bf; background-position: 0% 100%; background-attachment: fixed; background-repeat: no-repeat;
Zastřešující vlastnost background
Situace, kdy definujete jen jedinou vlastnost pozadí, jsou opravdu vzácné.
Ve valné většině případů jich předepisujete hned několik najednou. V takovém
případě se vám bude hodit vlastnost background
, aneb
„vše o pozadí“.
Její hodnotou může být libovolná směs hodnot jednotlivých dílčích vlastností pro pozadí. Jejich hodnoty se od sebe liší, takže klient snadno pozná, co k čemu patří. Vlastnostem, jejichž hodnoty neuvedete, nastaví výchozí hodnotu. Kompaktnější tvar výše uvedené definice by vypadal takto:
background: url("/~satrapa/img/pozadi.gif") #ffe6bf 0% 100% fixed no-repeat;
Ve skutečnosti jej mám ve stylovém předpisu právě v tomto kompaktním tvaru. Snadněji se píše i přenáší po síti.
Na co si dát pozor
Obrázek na pozadí lze použít dvěma základními způsoby. Jednou možností je, že jej vhodným umístěním a mezerami vystrčíte do prostoru, kde nekoliduje s textem. Ukázku jste viděli ve druhém příkladu, kde je levé odsazení stránky nastaveno tak, aby text nekolidoval s červenou zubaticí. Nebo můžete tímto způsobem opatřovat vybrané části textu (třeba odkazy) ikonami. Nezapomínejte ale, že uživatel si může změnit velikost textu, což v těchto případech může způsobit problémy.
Druhou možností je umístit obrázek přímo pod text, jako třeba v prvním příkladu. Mějte na paměti, že každý obrázek na pozadí zhoršuje čitelnost textu psaného přes něj. Otázkou je jedině jak moc nebo málo ji zhorší. Abyste text poškodili co nejméně, je záhodno, aby pozadí neobsahovalo výrazné barvy, ostré hrany ani velké kontrasty. Podívejte se třeba na tuhle hrůzu – hrany a kontrasty rozbijí text natolik, že nenajdete žádnou barvu, aby text byl rozumně čitelný.
Společně s obrázkem vždy definujte i barvu pozadí, která jej doplní či nahradí. Barva bude vidět všude tam, kde není překryta obrázkem – v místech, kde se obrázek neopakuje, nebo kde je průhledný. Barvu pozadí definujte i v případech, kdy vůbec nemá být vidět (opakovaný neprůhledný obrázek). V tom případě použijte barvu, která odpovídá barevnému vyznění obrázku. Může se totiž stát, že uživatel má vypnuté zobrazování obrázků, nebo se jeho přenos s nějakých důvodů nezdaří. V takovém případě by jej barva pozadí měla zastoupit.
zpět: CSS - barva a pozadí