2.2. fejezet¶
A fejezet anyaga¶
CSS alapok¶
Az eddigiek során tárgyalt HTML nyelvet a weboldal tartalmának kialakítására és strukturálására használtuk. Ha a tartalmat formázni is szeretnénk, akkor a CSS-re (Cascading Style Sheets) lesz szükségünk.
Szintaxis¶
A CSS utasítások szintaxisa a következőképpen néz ki:
1 2 3 4 5 |
|
A szelektor (más néven kijelölő) segítségével megmondjuk, hogy a weboldal mely elemét (vagy elemeit) szeretnénk formázni. Ezután kapcsos zárójelek között, pontosvesszővel elválasztva megadjuk az elvégzendő formázásokat tulajdonság: érték
formában. A tulajdonság
az adott elem formázandó tulajdonsága (pl. háttérszín, betűtípus, térköz stb.), az érték
pedig az adott tulajdonsághoz tartozó, beállítani kívánt érték.
A CSS kódba írhatunk kommenteket (megjegyzéseket) is az alábbi szintaxissal:
1 |
|
Példa: Egy konkrét CSS kódrészlet
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
CSS beágyazása¶
Egy HTML kódba többféleképpen is beágyazhatunk CSS formázásokat.
Inline CSS esetén a tagek style
attribútumának értékeként adjuk meg a CSS formázást. Ekkor a formázás mindig csak az adott objektumra lesz érvényes. Ebben az esetben nem használunk CSS szelektort, hiszen mindig az aktuális objektumot formázzuk.
1 |
|
Figyelem
Az inline CSS nem hatékony, valamint a kód átláthatóságát is rontja. Emiatt, ha csak lehet, kerüljük a használatát!
A lapon belüli (internal) CSS-t a <head>
-ben adjuk meg, <style>
és </style>
között. Az így kiadott formázások az aktuális HTML dokumentumra lesznek érvényesek.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
A külső (external) CSS lényege, hogy a CSS formázásokat egy külső (.css kiterjesztésű) fájlba írjuk, majd ezt a fájlt ágyazzuk be a HTML állományunk <head>
részében, a <link/>
páratlan tag segítségével. Ekkor a külső CSS fájlban lévő formázások minden olyan HTML dokumentumra érvényesek lesznek, amelyek ezt a CSS fájlt beágyazzák.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Tipp
A külső (external) CSS különösen hasznos akkor, amikor egy weboldal több lapjának szeretnénk ugyanazt a formázást adni.
Alapvető szelektorok¶
Ebben a részben megismerkedünk a négy legalapvetőbb CSS szelektortípussal, amikkel HTML objektumokat jelölhetünk ki. A következő leckében ezek felhasználásával összetettebb szelektorokat is készítünk majd.
- Elem szelektor: tagnév alapján jelöli ki az összes ugyanolyan típusú HTML elemet
- Class szelektor: azokat az elemeket jelöli ki, amelyek az adott
class
értékkel rendelkeznek; az ilyen szelektort ponttal (.
) kezdjük - Id szelektor: az adott
id
értékkel rendelkező elemet jelöli ki; az ilyen szelektort kettős kereszttel (#
) kezdjük - Univerzális szelektor: a
*
szelektorral az összes HTML objektumot kijelölhetjük
Példa: A négy alapvető szelektortípus: elem szelektor, class szelektor, id szelektor és univerzális szelektor
1 2 3 4 5 6 7 |
|
Értékek, mértékegységek¶
Mielőtt megismernénk az első konkrét, HTML elemek formázására szolgáló CSS utasításainkat, érdemes áttekinteni a CSS-ben használatos fontosabb mértékegységeket.
- Hosszúság megadása:
- abszolút hosszúság:
mm
(milliméter),cm
(centiméter),in
(inch = hüvelyk),pt
(pont),px
(pixel),pc
(pica) - relatív hosszúság:
%
(más értékekből számolódik),em
(betűmérethez viszonyít),rem
(gyökérelem betűméretéhez viszonyít),vw
(ablakszélesség 1%-ához viszonyít),vh
(ablakmagasság 1%-ához viszonyít)
- abszolút hosszúság:
- Szögek megadása:
deg
(fok),rad
(radián),grad
(gradián) - Színek megadása:
- angol névvel - pl.
blue
- decimális RGB-kóddal - pl.
rgb(0, 0, 255)
- százalékos RGB-kóddal - pl.
rgb(0%, 0%, 100%)
- hexadecimális RGB-kóddal - pl.
#0000FF
- angol névvel - pl.
A színmegadási módokról részletesebben
Az additív színkeverés a vörös (Red), zöld (Green) és kék (Blue) alapszínekkel dolgozik, és ezekből kever ki különböző színeket. Az RGB-kód (a decimális, a százalékos és a hexadecimális RGB-kód is) azt kódolja, hogy a három alapszínből rendre mekkora mennyiséget használtunk fel egy adott szín kikeveréséhez.
A decimális RGB-kódnál mindhárom alapszín mennyisége 0 és 255 közötti lehet. Például az rgb(0, 0, 255)
azt jelenti, hogy a vörös (Red) szín mennyisége 0, a zöld (Green) szín mennyisége szintén 0, a kék (Blue) szín mennyisége pedig a maximális 255 - tehát ez a színkód éppen a kék színt kódolja.
Az alapszínek mennyiségét megadhatjuk százalékosan is, ekkor értelemszerűen 0% és 100% közötti értékeket írunk mindenhova. Például százalékos megadás esetén a kék szín kódja a következő lesz: rgb(0%, 0%, 100%)
.
A hexadecimális RGB-kód is pontosan ugyanígy működik, csak talán első ránézésre ez nem annyira világos. A hexadecimális RGB-kódban #
(kettős kereszt) után 6 darab, tizenhatos számrendszerbeli számjegyet adunk meg (tehát minden számjegy 0 és F (= 15) közötti). Az első két számjegy a vörös (Red), a második kettő a zöld (Green), az utolsó kettő pedig a kék (Blue) szín mennyiségét kódolja. Például a #0000FF
a kék színt kódolja, hiszen a vörös és zöld mennyisége minimális (00), a kék mennyisége pedig a maximális (FF).
- Ha az adott (vörös, zöld vagy kék) színkomponenshez tartozó 2 számjegy megegyezik, akkor ezt rövidítve is írhatjuk. Például
#0066FF
helyett azt is írhatjuk, hogy#06F
. - A hexadecimális színkód nem érzékeny a kis- és nagybetűkre (tehát például
#12BD0F
és#12bd0f
ugyanaz).
Tipp
Nyilván senki nem akarja fejből megtanulni az összes létező színkódot. Szerencsére vannak olyan online szoftverek (például ez), amelyekkel manuálisan kiválaszthatunk egy nekünk tetsző színt a színpalettáról, és megtudhatjuk annak az RGB-kódját.
Szövegek formázása¶
Az alábbiakban áttekintjük a szövegekkel kapcsolatos fontosabb CSS formázásokat.
font-family
: betűtípus- értékeként több betűtípus is felsorolható vesszővel elválasztva - ekkor a felsoroltak közül a legelső telepített betűtípus lesz beállítva
- a több szóból álló betűtípusok nevét (pl. Courier New) aposztrófok között (
'...'
) adjuk meg
font-size
: betűméretfont-weight
: betűvastagság- lehetséges értékei:
normal
(alapértelmezett vastagság),bold
(vastag),bolder
(vastagabb),lighter
(vékonyabb), 100 és 900 közötti szám
- lehetséges értékei:
font-style: italic
- dőlt betűssé tételcolor
: betűszíntext-align
: szöveg vízszintes igazítása- lehetséges értékei:
left
(balra),right
(jobbra),center
(középre),justify
(sorkizárt)
- lehetséges értékei:
text-transform
: szöveg átalakítása- lehetséges értékei:
uppercase
(csupa nagybetűs),lowercase
(csupa kisbetűs),capitalize
(minden szó első betűje nagybetű),none
(alapértelmezett)
- lehetséges értékei:
Példa: Néhány szövegformázás
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
A dobozmodell¶
Minden HTML objektum felfogható egy téglalap alakú dobozként. CSS-ben gyakran használjuk a dobozmodell fogalmat, amikor elemek elrendezéséről és dizájnolásáról beszélünk. Az alábbi ábrán láthatjuk ennek a dobozmodellnek a részeit. (Az ábra forrása)
- A
content
jelenti a doboz tartalmát, ami általában az elem szöveges tartalma vagy egy kép. - A
padding
a tartalom körül található belső térköz. - A
border
a tartalmon és a belső térközön kívül elhelyezkdő szegély. - A
margin
a szegélyen kívül található külső margó.
Térközök megadása¶
A padding-top
, padding-right
, padding-bottom
és padding-left
CSS tulajdonságokkal beállíthatjuk egy elem felső, jobb oldali, alsó és bal oldali térközének a mértékét.
Ezek a jellemzők összevonva is megadhatók a padding
tulajdonsággal, amelynek értékeként megadjuk sorban a felső, jobb, alsó és végül a bal térköz mértékét. Ha ezek közül valamelyik paramétert elhagyjuk, akkor az a szemközti oldaltól fogja örökölni az értéket.
Példa: Térköz megadása a padding
tulajdonsággal
1 2 3 4 5 6 7 8 9 10 |
|
Margók megadása¶
Nagyon hasonlóan, mint ahogy azt a térközöknél láttuk, a margók is megadhatók...
- ...külön-külön, a
margin-top
,margin-right
,margin-bottom
ésmargin-left
tulajdonságokkal - ...összevonva, a
margin
tulajdonsággal (felső-jobb-alsó-bal sorrendben itt is - ha valamelyik margó méretét nem adjuk meg, akkor a szemközti oldaltól örökli azt).
A margin-left
és margin-right
tulajdonságoknál az auto
értéket felhasználhatjuk az elem vízszintes igazítására:
margin-left: auto
: vízszintesen jobbra igazítja az elemetmargin-right: auto
: vízszintesen balra igazítja az elemet- ha mind a bal, mind a jobb margó értéke
auto
, akkor vízszintesen középre igazodik az elem.
Példa: Elem vízszintesen középre igazítása
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Szegélyek megadása¶
A szegélyek megadására a border
CSS tulajdonság szolgál. Ennek értékeként 3 paramétert adunk meg: rendre a szegély vastagságát, stílusát és színét. Ezeket egyébként külön-külön is megadhatjuk a border-width
, border-style
és border-color
tulajdonságokkal.
A szegély vastagsága (border-width
) lehet a thin
(vékony), medium
(közepes) és thick
(vastag) kulcsszavak valamelyike, de ha ennél pontosabbak szeretnénk lenni, akkor akár pixelben is megadhatjuk a szegélyvastagságot.
A szegély stílusa (border-style
) lehet solid
(folytonos), dashed
(szaggatott), dotted
(pontozott), double
(dupla), groove
(faragott), ridge
(kidomborodó), outset
(kiemelkedő), inset
(süllyesztett), none
(nincs szegély) vagy hidden
(rejtett).
Ha nem szeretnénk minden irányból szegélyt adni egy objektumnak, akkor a border-top
, border-right
, border-bottom
és border-left
tulajdonságokkal külön-külön is megadhatjuk a felső, jobb, alsó és bal szegélyek értékét.
Példa: Szegélyek megadása
1 2 3 4 5 6 7 8 9 |
|
Elemek méretezése¶
Miután megismertük a CSS dobozmodellt, beszélhetünk a HTML elemek méretéről (szélességéről és magasságáról).
Egy elem szélességét a width
, magasságát pedig a height
CSS tulajdonsággal adhatjuk meg. Ezek értékeként megadható a korábban tárgyalt abszolút és relatív hosszúságmértékek valamelyike, vagy az auto
speciális érték (ekkor a böngésző határozza meg a méretet).
Ehhez hasonlóan a min-width
, max-width
, min-height
és max-height
tulajdonságokkal rendre megadhatjuk egy elem minimális és maximális szélességét, valamint minimális és maximális magasságát.
A box-sizing tulajdonság¶
A méret (szélesség és magasság) megadásának többféle értelmezése lehet. Ennek szabályozására szolgál a box-sizing
CSS tulajdonság. Értékei:
content-box
: az elem méretébe csak a tartalom tartozik bele (alapértelmezett)border-box
: az elem méretébe a tartalom, a térközök és a szegélyek is beletartoznak.
Ha egy másik objektumon belül elhelyezkedő elem méretét százalékban adjuk meg, akkor előfordulhat, hogy a következő jelenséggel találjuk szembe magunkat:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Látható, hogy a beágyazott objektum szegélye "kilóg" az őt tartalmazó objektumból, ami közel sem mondható szépnek. Ennek a jelenségnek az oka, hogy az elemek méretébe alapértelmezett módon csak az elem tartalma tartozik bele, a térközök és a szegélyek nem lesznek figyelembe véve a méret meghatározásakor (content-box
).
Ha azt szeretnénk, hogy a méretbe a tartalom mellett a térközök és a szegélyek is beletartozzanak, használjuk a box-sizing: border-box
utasítást!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
A háttér formázása¶
Ebben a részben megismerünk néhány fontosabb CSS tulajdonságot, amelyet a háttér formázására használhatunk.
background-color
: háttérszín- értékeként megadható egy szín vagy a
transparent
(átlátszó) kulcsszó
- értékeként megadható egy szín vagy a
background-image
: háttérkép- a beállítani kívánt háttérkép elérési útvonalát az
url('elérési_útvonal')
segítségével adjuk meg
- a beállítani kívánt háttérkép elérési útvonalát az
background-repeat
: háttérkép ismétlődése- lehetséges értékek:
repeat
(vízszintes és függőleges ismétlődés, alapértelmezett),repeat-x
(vízszintes ismétlődés),repeat-y
(függőleges ismétlődés),no-repeat
(nem ismétli)
- lehetséges értékek:
background-position
: háttérkép pozíciója- két értéket vár: rendre a vízszintes és a függőleges pozíciót
- a vízszintes pozíció értékei:
left
(bal),right
(jobb),center
(középre) - a függőleges pozíció értékei:
top
(fent),bottom
(lent),center
(középre) - a fenti kulcsszavak helyett megadhatók százalékos értékek is a pozíciók helyén
- nem kötelező mindkét értéket megadni (ha elhagyjuk a második paramétert, akkor függőlegesen középre lesz pozicionálva a háttérkép)
- a vízszintes pozíció értékei:
- két értéket vár: rendre a vízszintes és a függőleges pozíciót
background-size
: háttérkép mérete- két értéket vár: rendre a vízszintes és a függőleges méretet
- nem kötelező mindkét értéket megadni
- megadható abszolút vagy relatív hossz, vagy a lenti kulcsszavak valamelyike
auto
: automatikus (alapértelmezett)cover
: a tartalmazó elem szélességére vagy magasságára méretezi a háttérképet az eredeti méretarányok megtartásával úgy, hogy a kép a teljes hátteret kitöltse (lehet, hogy a kép bizonyos részei nem fognak látszani)contain
: a legnagyobb méretre skálázza a háttérképet az eredeti méretarányok megtartásával úgy, hogy a kép teljes egészében látható legyen
- két értéket vár: rendre a vízszintes és a függőleges méretet
Tipp
Példa: Háttérformázások (A felhasznált háttérkép forrása)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
Elem megjelenítése¶
A HTML elemek megjelenítését a display
CSS tulajdonsággal szabályozhatjuk. A tulajdonság néhány lehetséges értéke:
inline
: sorszintű elem (szélességét a tartalom szélessége határozza meg, nem kezdődik új sorban)block
: blokkszintű elem (szélessége a rendelkezésre álló szélesség, új sorban kezdődik)inline-block
: inline, de megadhatók a méretei (szélessége, magassága)none
: elem eltüntetése- manapság nagy népszerűségnek örvend még a flexbox és a grid.
Példa: Kép vízszintesen középre igazítása, elem eltüntetése (A felhasznált kép forrása)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|