8. fejezet¶
CSS nesting¶
Modern böngészők esetében lehetőségünk van CSS nesting-et használni, azaz egyes stílusokat másik stílusokba ágyazni, ezzel javítva a CSS kódjaink átláthatóságát.
Előnyök:
- Átláthatóság: A kód szerkezete jobban tükrözi az oldal HTML-struktúráját, így könnyebb értelmezni és módosítani.
- Rövidebb kód: Kevesebb ismétlés, így tömörebbé válik a stíluslap.
- Karbantarthatóság: Könnyebb a kapcsolódó stílusokat együtt kezelni és módosítani.
Példa: hagyományos CSS kód
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Példa: ugyanez nesting-et használva
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Note
A CSS nesting egy modern funkció, így sok böngésző nem, vagy csak korlátozottan támogatja.
Media query-k¶
A webfejlesztés során felmerülhet az igény arra, hogy néhány CSS formázást csak bizonyos médiatípusok és paraméterek esetén végezzünk el. Erre egy tipikus példa, amikor különféle eszközökre és felbontásokra szeretnénk optimalizálni a weboldalunk megjelenését.
A CSS3 media query-k segítségével lehetőségünk van olyan CSS formázásokat megadni, amelyek csak bizonyos feltételek teljesülése esetén lesznek érvényesek. A media query-k szintaxisa:
1 2 3 |
|
- A
mediatype
azt a médiatípust jelöli, amire elvégezzük a formázást. Lehetséges értékei:screen
(számítógépek, tabletek, okostelefonok stb. képernyője),print
(nyomtató),speech
(felolvasóprogram),all
(minden médiatípus). - A
mediafeature
helyén adjuk meg a feltételt, ami mellett elvégezzük a formázást. - A
not
kulcsszó az egész media query jelentését negálja. - Az
only
kulcsszó a régi, CSS3 media query-ket nem ismerő böngészőknél nem végzi el a formázást. Használatának a modern böngészőkben nincs hatása. - Az
and
kulcsszó összeköti a feltételt (mediafeature
) a médiatípussal (mediatype
) és/vagy további feltételekkel. - A
not
,only
ésand
kulcsszavak használata opcionális. Ugyanakkor ha anot
vagyonly
kulcsszavakat használjuk, akkor kötelezően meg kell adni a médiatípust is!
Néhány gyakran használt media feature:
* min-width
és max-width
: a képernyő szélességének határait szabályozzák.
* min-height
és max-height
: a képernyő magasságának határait szabályozzák.
* orientation
: a képernyő tájolása (portrait vagy landscape).
* aspect-ratio
: a képernyő képaránya.
* resolution
: a képernyő felbontása (dpi vagy dppx).
Példa: Egy media query, amely a 952 pixelnél nem szélesebb képernyők esetén megszünteti a kép úsztatását, és középre igazítja a képet. A böngészőablak szélességének megváltoztatásával látható a media query hatása. (A kód kimenete megtekinthető itt)
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 |
|
Reszponzív design¶
A reszponzív design (responsive design) olyan webdesign megközelítés, amelynek célja, hogy a weboldalak különböző eszközökön és képernyőméreteken (asztali gépek, laptopok, tabletek, okostelefonok stb.) is optimális felhasználói élményt nyújtsanak. Ez azt jelenti, hogy a weboldal tartalma, elrendezése és funkciói automatikusan igazodnak a képernyő méretéhez és tájolásához, biztosítva ezzel a könnyű olvashatóságot és navigációt.
A CSS media query-k kulcsszerepet játszanak a reszponzív design megvalósításában. Segítségükkel különböző CSS stílusokat alkalmazhatunk, amelyek csak bizonyos eszközökön vagy feltételek mellett lépnek életbe. Íme néhány gyakori példa a CSS media query-k használatára:
Példa: A lenti példa különböző stílusokat alkalmaz különböző képernyőméretek esetén. Kis méretű képernyőkön kevesebb margin és padding használatos a helytakarékosság érdekében.)
1 2 3 4 5 6 |
|
Nyomtatási stíluslap¶
A CSS media query-k segítségével nyomtatási stíluslapot is készíthetünk egy weboldalhoz. A @media print
utasítással olyan formázásokat adhatunk meg, amelyek csak nyomtatás esetén lesznek érvényesek.
Néhány fontosabb javaslat, lehetőség nyomtatási stíluslapok használata esetén:
- A hosszúsággal kapcsolatos értékek megadására érdemes a
pt
(pont) mértékegységet használni, ugyanis ez kifejezetten nyomtatásra lett kitalálva. - A
page-break-before
,page-break-after
éspage-break-inside
tulajdonságokkal szabályozhatjuk az oldaltöréseket. - A
@page
direktíva segítségével beállíthatjuk a nyomtatási margókat.
Példa: Egy egyszerű nyomtatási stíluslap
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|