HTML & CSS kezdőknek

HTML & CSS kezdőknek (36. rész): A Box modell

A bemutató összes videója

A CSS-ben az elemeket általában téglalap alakú dobozként vagy sávokként kezelik. A dobozok leírásához a következő - nektek már biztosan ismert - tulajdonságokat használják:

width – az elem szélessége
height – az elem magassága
left – bal távolság
right – jobb távolság
top – felső távolság
bottom – alsó távolság
margin – külső margó
border – az elem körüli keret
padding – belső margó, azaz a kerettől az elem tartalmáig mért távolság

Ezeket a tulajdonságokat már bemutattuk.

Az elemek összszélessége az egyes adatok szélességéből adódik össze. (Ugyanez vonatkozik a magasságra is).

Példa:

div#box {
   width: 100px;
   padding: 20px;     /* 20px balra és jobbra /
   border: 2px solid; / 2px balra és jobbra  /
   margin: 0 30px;    / 30px balra és jobbra */
 }

Milyen szélességgel rendelkezik ez az div-terület? Nézzük meg az egyes értékeket:

• 100 képpont

• 2-szer 20 képpont

• 2-szer 2 képpont

• 2-szer 30 képpont

Ez összesen 204 képpontos elem szélességet eredményez.

Az elemek szélességét és magasságát a width és height határozzák meg. Ha ezek az adatok nem szerepelnek explicit módon a stíluslapban, akkor a következők érvényesek:

• Ha hiányzik a width, akkor a doboz annyira széles lesz, mint a körülvett elem.

• Ha hiányzik a height, akkor az elem annyira magas lesz, mint a tartalma.

Példa:

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 div#box {
    border: 1px solid; /* 2px balra és jobbra  */
    margin: 0 30px;    /* 30px balra és jobbra */
    background-color:#6600CC;
 }
 </style>
 </head>
 <body>
 <div id="kocka">PSD-Tutorials.de</div>
 </body>
 </html>



A böngészőben ez így néz ki:

HTML & CSS kezdők számára (Rész 36): A boxmodell



A div-elem fölérendelt eleme a body. Ennek megfelelően az elem valóban olyan széles lesz, mint a body-elem. A magasság tekintetében azonban a tartalomhoz igazodik.

Minden nullára

Minden böngésző rendelkezik beépített stíluslappal. Ezekben a stíluslapokban néhány alapérték van meghatározva. Ez például a padding és a margin esetében is érvényes. Sajnos ezek az alapértékek eltérőek lehetnek a különböző böngészőkben. Ez a tény nehezíti meg, hogy az egyes böngészőkben azonos eredményeket érjünk el például a dobozmodell kapcsán. Ezért ajánlott az alapértékeket, amelyeket a böngészők előírnak, nullára állítani. Ezt így tehetitek meg:

* { padding: 0; margin: 0; }



Fűzzétek be ezt a sort a stíluslapotok elejére. Így már elkezdhetitek a dobozokat a kívánt helyre elhelyezni.

Doboztípusok

Annak módja, ahogyan egy elem végül megjelenik, és ahogyan hatást gyakorol más elemekre, az az elem típusától függ. Valójában a CSS specifikáció megkülönböztet a blokktípusú és az inline elemek között. (Vannak más típusok is, amelyeket ebben a pontban nem veszünk figyelembe, mivel alárendelt szerepet játszanak).

A blokkelemek mindig új sort hoznak létre. Az ezeket követő elemek szintén új sorban kezdődnek. Tipikus blokkelemek például a p, div, h1, ul stb. Ezekre az elemekre vonatkoznak a fent felsorolt tulajdonságok: külső margó, belső margó, magasság, szélesség és keret.

<h1>Digitális festés & Matte festés: A kép felépítésének meghatározása</h1>
<p>Modul 2 - Rész 2: Egy kép mindig egész. Azonban mindig fontolóra kell venni, hogy hova tekint először a néző.</p>

A böngészőben látható eredmények azt mutatják, hogy a h1 és a p kitüntetett saját sorokat hoznak létre.

HTML & CSS kezdőknek (36. rész): A Boxmodell



Az inline elemek viszont nem hoznak létre saját bekezdést, hanem inkább a normál szöveg folyamatában jelennek meg. Tipikus inline elemek például a span, em, strong, img, br stb. Az inline elemekre nincs érvényesek függőleges külső margók és szélesség- és magasságértékek.

<h1><em>Digitális festés & Matte festés</em>: A kép felépítésének meghatározása</h1>

<p>Modul 2 - Rész két: <strong>Egy kép mindig egész</strong>. Azonban mindig fontolóra kell venni, hogy hova tekint először a néző.</p>

És itt az eredmény:

HTML & CSS kezdőknek (36. rész): A Box modell.



Most azokból az elemekből, amik valójában blokkelemek, blokkokká tehetünk.

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 h1 {
 background-color:#00CCFF;
 }
 </style>
 </head>
 <body>
 <h1>Digitális festészet & Matrica festészet</h1>
 <p>Modul 2 - 2. rész: <em>Egy kép mindig egy egész</em>. Mindig el kell gondolkodnunk, hogy merre kell néznie az első pillantásra a nézőnek.</p>
 </body>
 </html>

Nézzétek meg az eredményt a böngészőben.

HTML és CSS kezdőknek (Rész 36): A dobozmodell



A h1 címsor háttérszíne jelzi, hogy az elem az teljes szélességen elfoglal. Az szélesség az őt tartalmazó body-elemre vonatkozik.

Most jön a display tulajdonság játéka.

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 h1 {
 display:inline;
 background-color:#00CCFF;
 }
 </style>
 </head>
 <body>
 <h1>Digitális festészet & Matrica festészet</h1>
 <p>Modul 2 - 2. rész: <em>Egy kép mindig egy egész</em>. Mindig el kell gondolkodnunk, hogy merre kell néznie az első pillantásra a nézőnek.</p>
 </body>
 </html>



A display: inline hatására az elem szélessége megváltozik.

HTML & CSS kezdők számára (Rész 36): A Box modell

Valójában most az elem szélessége az elérhető tartalmakhoz igazodik. Itt egy áttekintés arról, hogy milyen értékeket lehet még hozzárendelni a display tulajdonsághoz:

none – nincs megjelenítés

block – az elem blokkelemként jelenik meg, tehát új sort hoz létre.

inline – az elem inline-elemként jelenik meg, tehát a futó szövegben látszik.

inline-block – külsőleg blokkként jelenik meg, magassággal, szélességgel és külső margóval rendelkezhet. Minden elem azonban a futó szövegben marad. Így ez egy blokk- és egy inline-elem kombinációja.

list-item – az elem blokkelemként jelenik meg. Előtte azonban felsorolójelet szúr be.

run-in – a tartalomtól függően blokk- vagy inline-elemet hoz létre.

table – mint az ismert table-elem HTML-ben.

inline-table – mint az HTML table-elem, de inline-ban.

table-row – az elemek egymás mellett vannak elrendezve. Mint az HTML tr-elem.

table-cell – egy táblázatcella elemet képvisel, mint a th és td HTML-elemek.

table-row-group – egy elemcsoportot tartalmaz egymás mellett elrendezett gyermek-elemekkel. Mint a HTML tbody-elem.

table-header-group – egy elemcsoportot tartalmaz egymás mellett elrendezett gyermek-elemekkel. Mint a HTML thead-elem.

table-footer-group – egy elemcsoportot tartalmaz egymás mellett elrendezett gyermek-elemekkel. Mint a HTML tfoot-elem.

table-column – a következő sorok tulajdonságait írja le. A table-column mint az HTML col-elem.

table-column-group – ez az elem egy olyan elemcsoportot tartalmaz, amelyen keresztül egy oszlop elemeinek tulajdonságait lehet leírni. Mint az HTML colgroup-elem.

table-caption – ez határozza meg a táblázat feliratát. A tulajdonság az HTML caption-elemre hasonlít.

Tényleg a CSS számos különféle elem típusra különféle megjelenítési lehetőségeket kínál. Ezek kulcsszerepet játszanak az elemek elhelyezésével kapcsolatban. Erről többet a következő tutoriálisokban.