CSS hátterek
április 8, 2010 @ 12:24
A CSS alapjaival foglalkozó sorozat jelenlegi részében a CSS segítségével megvalósítható hátterekkel foglalkozunk. Háttere szinte minden DOM entitásnak lehet, de talán legtöbbször a body illetve a div elemekhez szoktunk hátteret beállítani. A beállításhoz a CSS background tulajdonságának különböző variációira lesz szükségünk.
A background-color segítségével beállíthatjuk a háttér színét. Ez főleg akkor hasznos, ha nem valamilyen képet akarunk beállítani háttérként vagy fennáll annak a lehetősége, hogy a háttérként beállítani kívánt kép mérete nem éri el a teljes kitöltendő területet, és a kép által nem takart rész színét mi akarjuk meghatározni. A legfontosabb az, hogy mindig ügyeljünk a háttér és a tartalom kontrasztjára, mert a fekete alapon sötétszürke betűk — és még rengeteg további példát sorolhatnék — olvasása rendkívül fárasztó, így látogatóink otthagyják az oldalt akármennyire érdekes is a tartalom. A következő beállítással például feketére állíthatjuk az egész oldal hátterét:
body {
background-color: black;
}
A background-image tulajdonság beállításával egy képet használhatunk háttérként. Mivel háttérképről van szó, ezért célszerű olyan képet választani, amely nem vonja el a figyelmet a tartalomról. Ehhez általában az kell, hogy a kép ne legyen nagyon harsány, lehetőleg legyen homogén és elegendő kontraszt maradjon közte és a tartalom között. A következő példa egy szakasz háttérképét állítja be:
div {
background-image: url(background.jpg);
}
A background-repeat segítségével adhatjuk meg, hogy a background-image-ként beállított háttérkép ismétlődjön-e vagy sem. A repeat, a repeat-x, a repeat-y és a no-repeat beállítások közül választhatunk. A repeat megadásával a képet – ha az kisebb, mint az elem, aminek a hátterének beállítottuk – mind függőlegesen, mind vízszintesen ismétli úgy, hogy az elemet teljesen lefedje. A no-repeat ennek pontosan az ellenkezője: nem ismétli meg a képet, akkor sem, ha így az elem valamekkora része háttérkép nélkül marad. Ilyenkor a képpel nem fedett rész a background-color tulajdonság által megadott színű, vagy ennek hiányában alapértelmezett színű (általában fehér). A repeat-x csak vízszintesen, a repeat-y pedig csak függőlegesen ismétli a beállított háttérképet. A következő beállítás nem ismétli a háttérképet:
body {
background-repeat: no-repeat;
}
Háttérképünknek nem kötelező az alapértelmezés szerinti középen lennie. A background-position beállításával megadhatjuk, hogy a háttérkép hova kerüljön. A beállításnál a top, bottom, center, left és right lehetőségeken kívül pontos értéket vagy százalékot is megadhatunk. A következő példa a háttérképet balra, és az elem tetejéhez képest 10 pixellel lejjebb igazítja:
div {
background-position: left 10px;
}
A végére hagytam a legérdekesebbet, a background-attachment tulajdonságot. Két beállítási lehetősége van: a scroll és a fixed. Ha a scroll van beállítva – ez az alapértelmezett -, akkor az elem görgetésével annak háttere is vele együtt mozog. A fixed beállítás esetén viszont a háttér helyben marad, és görgetéskor csak a tartalom mozog. A fixed beállítás ízléses alkalmazása sokszor feldobja az oldal összhatását. A következő példa rögzíti az oldal hátterét:
body {
background-attachment: fixed;
}
Ha szeretünk rövidíteni, használjuk a background tulajdonságot, amely lehetőséget ad a fentiek egyszerre való beállítására. A sorrend ilyenkor a következő kell legyen: background-color, background-image, background-repeat, background-attachment, background position. Például:
body {
background: black url(background.jpg) no-repeat fixed left 10px;
}
A fent bemutatott background-tulajdonságok minden elterjedt böngésző esetében használhatóak.

Ertl-Bakos Balázs — 2010. május 29. szombat @ 02:28
Csak még annyit a background-attachment-hez, hogy ez a tulajdonság csak a body-ra vonatkozik, hiszen csak egy viewport van, amihez rögzíteni lehet a hátteret görgetéskor. (Azaz nem érvényes pl. egy overflow: scroll-lal görgethető div-re) Működése pedig szorosan összefügg a background-repeat-tel (specifikáció: http://href.hu/x/cen5).
(A background tulajdonságcsalád a CSS 2.1-ből való, de nem a hármasról szól a blog?)
Andrew — 2010. július 17. szombat @ 03:51
csak annyi a gond hogy semmi ízlésetek sajnos.. ízléstelen az egész oldal..
nemízléstelen — 2010. július 29. csütörtök @ 19:35
@Andrew
Nem értem miért ízléstelen az oldal..
Szerintem egész jó.
Ertl-Bakos Balázs — 2010. július 30. péntek @ 10:34
@Andrew
Nagyfokú amatőrségre vall a részedről, hogy ízlésbeli kérdésekbe kötsz bele