1.04k likes | 1.15k Vues
Learn about cascading style sheets (CSS) in web development. Discover how CSS influences HTML elements' appearance and simplifies styling. Find out why using CSS leads to cleaner code, easier maintenance, and faster loading times. Join the PHP Conference RoadShow in Kecskemét to enhance your CSS skills!
E N D
Stíluslapok (CSS)a webfejleszétben Nagy Gusztáv PHP Konferencia RoadShowKecskemét
Mi az a CSS? • A CSS jelentése Cascading Style Sheets, azaz egymásba ágyazott stíluslapok. • A HTML oldalaink megjelenését befolyásoló nyelvről van szó, mely segítségével meghatározhatjuk, hogy hogyan (és hol) jelenjenek meg az egyes HTML elemek (paragrafusok, címsorok, stb.), pl. szín, méret, elhelyezkedés, margó.
Egymásba ágyazhatóság • több stíluslapot, meghatározást is megadhatunk egyszerre • egy stílus lehet több elemre is érvényes, amit egy másik stílussal felüldefiniálhatunk • a stílusok öröklődnek az oldal hierarchiája szerint, ha például a gyökér elemre definiálunk egy stílust, akkor az többnyire az oldal összes elemére érvényes (a tulajdonságok alapértelmezésétől függően)
Motiváció azaz miért is jó a CSS?
Miért CSS? Miért lesz egyszerűbb az életünk a CSS használatával? • Szeretnénk, ha a címsoraink betűi nagyok és sötétvörösek lennének, míg a bekezdéseink betűi kisebbek és sötétzöldek. Ezt HTML formázással a következőképpen tudjuk megvalósítani:
Miért rossz? • minden egyes címsor (h1) és bekezdés (p) esetén meg kellett határoznunk a megjelenést (font), ráadásul ezáltal sokkal kevésbé lett áttekinthető a HTML forrásunk • a betűk méretének meghatározására nincs más lehetőségünk (a szabvány szerint), csak az előre definiált (1-től 7-ig meghatározott) méretek közül kiválasztani a nekünk megfelelőt
Miért jobb így? • csak egyszer kell a formázást megtenni • a kód sokkal átláthatóbb lesz • a pontos méretet is meghatározhatjuk pixelben, vagy akár %-al, stb. • ha utólag módosítanunk kell a megjelenést, egyből csak egy helyen kell ezt megtennünk, s mindenhol meg is változik • az így elkészített dokumentum sokkal kisebb méretű is lesz, gyorsabban letöltődik (különösen, ha sok oldalon használjuk ugyanazt a stíluslapot)
Példa: stíluslap-váltás • A következő két kép ugyanazt a HTML oldalt mutatja, egyetlen különbség a stíluslap váltása
Beágyazott stíluslap • A stílusleírást a HTML oldal fejlécében kell elhelyezni, style elembe ágyazva. A fenti példában HTML megjegyzésbe is tettük (<!-- ... -->), ezzel azt érjük el, hogy az olyan böngészők, amik nem ismerik a stíluslapokat, ne jelenítsék meg a stílus definíciónkat. Az így meghatározott stílus az egész dokumentumra érvényes lesz.
Külső stíluslap • A stíluslapunkat elhelyezhetjük egy külső állományban is, így lehetővé téve, hogy az több HTML állományra is érvényes legyen, s központilag szerkeszthetővé váljon (ne kelljen minden egyes HTML állományt megváltoztatnunk, ha a honlapunk ezentúl másképp jelenne meg). A külső stíluslapokra az oldal fejlécében tudunk hivatkozni, egy link vagy style elem segítségével.
Külső stíluslap példa • A stíluslapot tartalmazó állományban csak a stíluslapjaink definícióját kell elhelyeznünk:
Importált stíluslap • egy stílus meghatározáson belül egy másik, külső stílus meghatározásra hivatkozunk: • külső stílus hivatkozásnak meg kell előznie minden más definíciót!
Elemhez rendelt stíluslap • Ritkán van rá szükség, de akkor jól jön, hogy az egyes HTML elemekhez helyben is tudunk stílust meghatározni • itt csak magát a megjelenést kellett leírnunk, nem kellett meghatározni, hogy mire vonatkozik: az így definiált stílus csak az adott elemre, illetve az adott elemen belül lesz érvényes.
Stílus-meghatározás • Kiválasztó:azt határozza meg, hogy mely HTML elemekre vonatkozzon a definíció • Tulajdonság:a megjelenést befolyásolja Pl: kiválasztó { tulajdonság }kiválasztó { tulajdonság }kiválasztó { tulajdonság }
Elem kiválasztása • Legegyszerűbb a HTML elemek használatapl: • Itt az első három szintű címsornak egyszerre határoztuk meg a színbeli megjelenését
Osztály alapú kiválasztás • A HTML elemeket lehetőségünk van osztályokba sorolni. Ekkor az adott osztályba sorolni kívánt elemhez egy class tulajdonságot rendelünk hozzá, amelynek az értéke az osztálynevünk lesz:
Osztály alapú kiválasztás • Legyen minden „fontos” osztályú tag megjelenítése piros: • Megjegyzés:az egyes stílusdefiníciók felül tudják bírálni egymást
Azonosító alapú kiválasztás • hasonló az osztály alapú kiválasztáshoz, • de azonosítóval csak egy elemet tudunk megjelölni.
Helyzetérzékeny kiválasztás • a fában egy adott elem alatt levő elemhez rendelhetünk stílust, például megmondhatjuk, hogy a táblázatokon belül levő félkövér betűk sötétkékek legyenek, miközben a többinek nem fog megváltozni a színe:
Szülő-gyermek kiválasztás • az elemeknek a (DOM) fában betöltött helye szerinti közvetlen szülő-gyermek kapcsolata esetén tudjuk megadni a stílus-meghatározását
Tulajdonság alapú kiválasztás • egy adott paraméter megléte, vagy annak az értéke szerint is lehet kiválasztani:
Variációk • Az eddigi kiválasztási módokat tetszés szerint variálhatjuk. Pl.
Betűtípus • az egész dokumentumra beállítjuk, hogy milyen betűkészlet legyen az alapértelmezett • érdemes több, hasonló betűkészletet is felsorolni, illetve a lista végére egy általános betűkészletet is elhelyezni az adott családból
Súlyosság • lehetőségek: lighter, normal, bold, bolder, illetve 100-tól 900-ig a számok 100-asával (egyre vastagabb betűkészletet választva)
Méret Megadási lehetőségek: • pixelben (mint a példában) • pontban (pt-t kell írni) • százalékban, • szövegesen (xx-small, x-small, small, medium, large, x-large, xx-large, smaller, larger)
Stílus • lehetőségeink: normal, italic, oblique
Csoportos megadás • Lehetőségünk van a fentieket egy paraméterként is átadni:
Szöveg paraméterek • h1 { color: black; } Fekete szín. Lehetőség van RGB megadásra is. • h1 { letter-spacing: 10px; }A címsor betűi közötti távolságot növeltük meg 10 képponttal. Lehetőségünk van növelni és csökkenteni a távolságot. • h1 { text-align: center; } Lehet: left, center, right és justify
Szöveg paraméterek • p { text-decoration: none; } lehetséges értékek: none, underline, overline, line-through, blink • p { text-indent: 40px; } bekezdések első sorának behúzása • h1 { text-transform: uppercase; } Lehetséges értékek: none, capitalize, uppercase és lowercase
Szöveg paraméterek • p { white-space: nowrap; }Szóközök, tabulátorok kezelését állíthatjuk a white-space attribútummal. A normal a sorvégeken tördeli a szöveget, a nowrap nem enged sortörést, míg a harmadik lehetséges érték, a pre megtartja egy az egyben a sortöréseket, szóközöket, tabulátorokat.
Szöveg paraméterek • p { word-spacing: 10px; }szavak közötti távolság • p { line-height: 20px; }sormagasságot állíthatjuk vele egy paragrafuson belül
Doboz modell • margó • keret • kitöltés • magasság • szélesség Bármilyen téglalap alakú tartalom esetén.
Háttér • Vezérelhetjük a háttér színét, képet helyezhetünk el háttérként, s annak tulajdonságait (elhelyezkedését, ismétlődését, mozgását) állíthatjuk be.
Háttér • background-color: white;értéke színkonstans vagy hexa érték lehet • background-image: url(hatter.gif); • background-position: top left; • background-attachment: scroll;lehetséges érték: fixed és scroll • background-repeat: repeat; lehetséges érték: repeat, repeat-x, repeat-y, no-repeat
Háttér • A háttér paraméterek egy összevonó background paraméterrel:
Keretek • border-width: 2pxszélesség • border-style: solidlehetséges értékek: none, hidden, dotted, dashed, solid, double, groove, ridge, inset, outset • border-color:blue
Keretek • Az előző példa egyetlen border tulajdonsággá összevonható:
Keretek • Lehetőségünk van a keretek mind a négy oldalon külön-külön történő beállítására, akár összevonva is: