A CSS doboz modell
szeptember 25, 2009 @ 20:15
Hát akkor következzen az első, nem kifejezetten CSS 3-mal foglalkozó poszt, ha már megígértem BonFire-nek, hogy az alapokról is írok egy kicsit. A tankönyvek nem itt kezdik, de szerintem ez a legfontosabb.
Minden elem, amit a HTML body tag-ben használunk egy téglalap alakú dobozba kerül a weboldalon. Persze ezt a téglalapot alap esetben nem látjuk, de attól még ott van, és a CSS segítségével mindenféle stílussal ruházhatjuk fel. Készítettem két ábrát, hogy megmutassam, hogyan is kell ezt az egészet elképzelni. Az első képen a doboz “robbantott ábrája” látható, míg a másodikon az, ahogyan a böngészőben végül is megjelenik.

A doboz következő tulajdonságait szabhatjuk testre:
- border: A doboz szegélye. Alapértelmezés szerint nem látszik. Megadhatjuk a vastagságát, a stílusát, a színét, stb.
- background: A doboz háttere. Megadhatunk egy színt és/vagy egy képet, továbbá beállíthatjuk, hogy a kép ismétlődjön-e, ha kisebb, mint a doboz.
- margin: A minimális távolság a doboz széle és a weboldal már elemei között.
- padding: A távolság a doboz széle és belső tartalma között.
- width: A doboz szélessége, padding és margin nélkül.
- height: A doboz magassága, padding és margin nélkül.

Ez pedig itt egy példa, ahol a következő CSS beállításokat alkalmaztam:
div {
width: 500px;
border-style: dashed;
border-width: medium;
background-color: #CFC;
background-image: url(box-modell-bg.jpg);
background-position: center;
padding: 10px;
}
Persze szinte mindegyik felsorolt tulajdonságról lehetne akár egy külön posztot is írni, ugyanis a gyakorlatban sokszor meggyűlik az ember baja azzal, hogy ezen tulajdonságok beállítása nem a kívánt eredményt hozza. Ez lehet azért, mert a böngésző nem szabványos módon jeleníti meg a tartalmat – erre főleg az IE 6 és a korább verziók hajlamosak -, vagy azért, mert olyan HTML elemre akarjuk alkalmazni a beállítást, amelyre nem lehet. Érdemes sokat gyakorolni, de ajánlanék két remek forrást is a tanuláshoz, amelyeket én is használok. Az egyik egy weboldal, a másik egy könyv:
Persze lesz még a CSS alapokról szó ezen a blogon is. És persze kérdezzetek nyugodtan, mert ez csak a jéghegy csúcsa.

BonFire — 2009. szeptember 28. hétfő @ 23:39
Köszönöm, hogy a poszttal konkrétan rám gondoltál. Eddig megértettem. Néhány kérdésem lenne a példával kapcsolatban:
1) Lehet-e a #CFC színkódot 6 jegyű hexa kóddal megadni, pl: FFA32D? Ez könnyebb, mivel a képszerkesztő így határozza meg. Illetve, hogy muszáj-e kimondottan a web színekhez ragaszkodni?
2) A kódolás formája: Van-e valami konkrét szerepe a kódok ilyen formában történő megadásának? Gondolok itt a “div” tagra, valamint a kapcsos zárójelekre; valamint a leírt tulajdonságok felcserélésére. Tehát felcserélhető-e a “border-style” és a “border-width”.
Tudom, hogy ezek a kérdések furának tűnnek, de a teljesen kezdőknek muszáj tudni, hogy miért éppen ezt és ezt a karaktert használjuk, valamint mi a szerepük.
admin — 2009. szeptember 29. kedd @ 19:48
Ne aggódj, nem furák a kérdések. Örülök, ha ez a blog népszerűsíti a CSS-t, hiszen azért kezdtem neki.
1. Persze, meg lehet adni a színt a hatjegyű kóddal, sőt az a “normális” megoldás. De bizonyos színek rövidíthetőek, például a #CFC = #CCFFCC. A fenti példában ezt használtam ki. A webszínekhez egyáltalán nem kell ragaszkodni, teljesen elavult dologról van szó, nyugodtan el lehet felejteni.
2. A div tag azért van ott, mert a megadott szabályok rá fognak vonatkozni. Ebben a formában a html-ben levő összes divre vonatkozna, de mivel a példában csak 1 van, ezért mindegy. A kapcsos zárójelek az adott html entitásra – jelen esetben ez a div – vonatkozó összes szabályt zárják körül. A tulajdonságok pedig felcserélhetők.
Érdemes megnézned egy hosszabb CSS fájlt példaként. Sokkal jobban látszik a struktúrája, mint így, amikor csak egyetlen elemre vonatkozó stílust nézel. Például a http://www.my-web.hu fő stíluslapját a http://www.my-web.hu/css/styles.css útvonalon érheted el.
BonFire — 2009. szeptember 29. kedd @ 19:57
Köszi a választ. Így már érthető. Gondolom úgy tudnám tanulni, ha valamin próbálgathatnám a beállításokat. Pl mi történik, ha itt és itt valamit megváltoztatok. Ehhez azonban gondolom valamilyen alapszintű html-oldalt kellene gyártanom, amin aztán szabadon próbálkozhatnék.
Mert a blogomat nem szívesen piszkálom; a sablon gyári, én csak itt-ott nyúltam bele, de elég bonyolult (számomra) a felépítése. Na és persze egyelőre csak úgy merek megváltoztatni dolgokat, hogy előtte készítek egy képernyőfotót, hogyha esetleg nagyon összekócolnám vissza tudjam állítani.
admin — 2009. október 6. kedd @ 22:05
Ti nem vettétek észre, de szerencsére én igen, habár megkésve: rossz helyre tettem a képen a width és height méreteket jelző nyilakat. Az objektum által valójában elfoglalt hely mérete ugyanis (width + padding + margin) x (height + padding + margin) nem pedig height = tartalom magasság + padding + margin és nem width = tartalom szélesség + padding + margin. Ez így nem valami intuitív, de ez a szabványos megvalósítás. Mindegy, javítottam a képeket.
blasius — 2009. november 15. vasárnap @ 21:59
Sziasztok,
Épp most találtam rá erre a blogra, mégpedig úgy, hogy a CSS dobozmodellhez kerestem egy jó képet – és itt megtaláltam! Nagyon jó, nem is gondoltam volna, hogy “robbantott” formában is lehet ábrázolni; köszönet érte.
BonFire: ha gyakorolni/elemezni akarsz kész és szépen formázott oldalakat, nézz fel ide: http://www.freecsstemplates.org/
Vagy ide: http://www.free-css-templates.com/
Jó tanulást, minkát mindenkinek!
tool — 2010. január 22. péntek @ 16:24
miert ne:)
BonFire — 2010. január 23. szombat @ 14:09
@blasius: köszi az oldalakat, csak sajnos halvány gőzöm sincs, mit kell ezekkel a template-ekkel kezdeni, mert hiába töltöm le, nem kompatíbilisek a blog.hu template-jeivel. Ezek weboldalra lettek tervezve, amaz meg blog. És a szerkezeti felépítése is teljesen más.
Hogy mást ne mondjak: A template-ben van a style.css nevű fájl, amit ugye csak be kéne másolni a megfelelő helyre. Azonban a blog.hu-n szét van bontva a css formázási oldal. Külön a Body, General tags, Page Header, Page Footer, Page Layout, Bejegyzés, Sideboxes, Naptás és Kommentek részre.
A letöltött template pedig a következőképpen épül fel: body, Header, Logo, Sidebar, Calendar, Footer, és semmi több. Nincs benne General tags, Page Layout, Bejegyzés, Kommentek rész. És egyáltalán nem ugyanazokból az elemekből áll fel. Míg a letöltött template-ben egy Header 3 sorból áll, addig a blog.hu sablonjában jóval hosszabban és részletesebben van taglalva.
Már kipróbáltam a létező összes variációt, hogy ezt másolom ide, amazt meg oda, de a végeredmény mindig csak az lett, hogy széthányta az egész oldalt, és végül egyáltalán nem úgy nézett ki, mint a weboldalon, ahonnét letöltöttem.
Úgyhogy marad a puritán kinézet, mert teljességgel használhatatlan az egész, és nincs aki segítsen.
jabbee — 2010. február 19. péntek @ 03:44
Szia BonFire! Nem baj, hogy kezdő vagy, úgy érzem mindenki azzal kezdte. Javaslom, hogy először alap HTML programozást nézz, lépésről-lépésre. Mikor ezzel megvagy, XHTML, majd utána CSS.
Amit letöltesz nem is lesz kompatibilis a blogoddal, mert azt egy másik html file-hoz írták.
A html és a css összefügg egymással, mivel a css gyakorlatilag arra való, hogy a html objektumok stílusát lehet vele megadni.
Valószínűleg a blogod motorját nem egy ember nem pár órán keresztül írta, úgyhogy ahhoz hogy azt átlásd sok tanulás és türelem kell!
Jó tanulást és sok sikert a továbbiakhoz!
Ádám
BonFire — 2010. február 19. péntek @ 07:39
Köszönöm a biztatást, habár annyi helyen kéne legyek szimultán, hogy ezek a tanulmányok már nemigen férnek bele az időmbe. Sajnos. Nemrégiben azonban kaptam egy kedves ajánlatot egyik olvasómtól, aki azt mondta, hogy ha elkészítem a designt, akkor ő megcsinálja hozzá a CSS-t. Inkább ez utóbbi lesz a befutó, habár ez sem mostanában, mert nemrégiben piszkálgattam, és most eléggé tűrhető a blog kinézete.
Persze, aki Photoshoppal dolgozik, attól jogos elvárás lenne, hogy az oldala szép, ízléses, modern kinézetű legyen. Majd valamit összekalapálok, bár most más jellegű dolgok kötnek le.
A bátorítást mindenesetre köszönöm.
Boo — 2010. március 30. kedd @ 14:26
Sziasztok!
Egy megjegyzésem lenne: a dobozmodellt javítottad, de a szövegben még mindig azt írod, hogy a magasság-ba beletartozik a padding is és a margó is, szerintem erre figyelj oda
Jó cikk volt, csak nagyon tömör, de remélhetőleg kedvcsináló a kezdőknek!
Üdv!
admin — 2010. április 8. csütörtök @ 12:41
Ott a pont
Javítottam. Köszi!