V CSS sú elementy základne spracovávané ako obdĺžnikové boxy alebo pásiky. Na popis boxov sa používajú nasledujúce – už vám iste známe – vlastnosti:
• width
– šírka elementu
• height
– výška elementu
• left
– odsadenie zľava
• right
– odsadenie zprava
• top
– odsadenie zhora
• bottom
– odsadenie zdola
• margin
– vonkajší okraj
• border
– rámeček okolo elementu
• padding
– vnútorný odsad, teda odsadenie od rámu k obsahu elementu
Tieto vlastnosti boli už predstavené.
Celková šírka elementu sa skladá z šírky jednotlivých udaní. (Platí to samozrejme aj pre výšku).
Príklad:
div#box { width: 100px; padding: 20px; /* po 20px zľava a sprava / border: 2px solid; / po 2px zľava a sprava / margin: 0 30px; / po 30px zľava a sprava */ }
Akú šírku má tento div
-box? Pozrime sa na jednotlivé hodnoty:
• 100 pixelov
• 2 krát 20 pixelov
• 2 krát 2 pixelov
• 2 krát 30 pixelov
To dáva celkovú šírku elementu 204 pixelov.
Šírka a výška elementov sa určuje pomocou width
a height
. Ak tieto údaje nie sú explicitne definované vo stylesheete, platí nasledujúce:
• Ak chýba width
, box sa zobrazí s rovnakou šírkou ako okolitý element.
• Ak chýba height
, element sa zobrazí s výškou určenou jeho obsahom.
Príklad:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PSD-Tutorials.de</title> <style> div#box { border: 1px solid; /* po 2px zľava a sprava */ margin: 0 30px; /* po 30px zľava a sprava */ background-color:#6600CC; } </style> </head> <body> <div id="box">PSD-Tutorials.de</div> </body> </html>
Vo webovom prehliadači to bude vyzerať nasledovne:
Nadradeným elementom div
-elementu je body
. Preto sa element zobrazí rovnako široký ako body
-element. Čo sa týka výšky, prispôsobí sa obsahu.
Všetko na nulu
Každý prehliadač má vstavaný stylesheet. V týchto stylesheetoch sú definované niektoré predvolené hodnoty. Toto platí napríklad aj pre padding
a margin
. Tieto predvolené hodnoty sa bohužiaľ líšia v rôznych prehliadačoch. Tento aspekt komplikuje dosiahnutie rovnakých výsledkov v jednotlivých prehliadačoch v súvislosti s Boxmodelom. Preto sa odporúča nastaviť odsadenia, ktoré sú prehliadačmi preddefinované, na nulu. Môžete to urobiť takto:
* { padding: 0; margin: 0; }
Pridajte tento riadok na začiatok vášho stylesheetu. Takto môžete začať umiestňovať boxy na požadované miesta.
Typy boxov
Ako sa element nakoniec zobrazí a ovplyvní iné prvky, závisí od typu elementu. Skutočne, CSS špecifikácia rozlišuje medzi blokovými a inline elementmi. (Existujú aj ďalšie typy, ktoré v tomto bode vynecháme, pretože hrajú iba vedľajšiu úlohu). Blokové elementy vždy vytvárajú nový riadok. Nasledujúce prvky začínajú tiež v novom riadku. Typickými blokovými elementmi sú napríklad p, div, h1, ul
a podobne. Pre tieto elementy platia vyššie uvedené vlastnosti, ako vonkajšie odsadenie, vnútorné odsadenie, výška, šírka a rámček.
<h1>Digital Painting & Matte Painting: Definovanie zloženia obrázka</h1> <p>Modul 2 - Časť 2: Obrázok je vždy celok. Avšak vždy si treba uvedomiť, kam sa má divák najprv pozrieť.</p>
Po pohľade na výsledok v prehliadači vidíme, že h1
a p
vytvárajú každé vlastný riadok.
Inline elementy naopak nevytvárajú vlastný odsek, namiesto toho sa zobrazujú bežne v texte. Typické inline elementy sú span, em, strong, img, br
a podobne. Pre inline elementy nie sú platné žiadne vertikálne vonkajšie odsadenia ani definované šírky a výšky.
<h1><em>Digitálne Maľovanie & Matné Maľovanie</em>: Definovanie zloženia obrázka</h1> <p>Modul 2 - Časť dva: <strong>Obrázok je vždy celok</strong>. Avšak vždy si treba uvedomiť, kam sa má divák najprv pozrieť.</p>
A tu je pohľad na výsledok:
Teraz môžete z elementov, ktoré sú v skutočnosti blokové, vytvoriť inline-elementy.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PSD-Tutorials.de</title> <style> h1 { background-color:#00CCFF; } </style> </head> <body> <h1>Digital Painting & Matte Painting</h1> <p>Modul 2 - časť 2: <em>Obrázok je vždy Celok</em>. Avšak vždy je potrebné zvážiť, kam by mal divák jako prvé pozrieť.</p> </body> </html>
Pozrite sa na výsledok v prehliadači.
Farba pozadia nadpisu h1
signalizuje, že tento element zaberá celú šírku. Šírka sa riadi nadradeným elementom body
.
Teraz prichádza na rad vlastnosť display
.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PSD-Tutorials.de</title> <style> h1 { display:inline; background-color:#00CCFF; } </style> </head> <body> <h1>Digital Painting & Matte Painting</h1> <p>Modul 2 - časť 2: <em>Obrázok je vždy Celok</em>. Avšak vždy je potrebné zvážiť, kam by mal divák jako prvé pozrieť.</p> </body> </html>
Zmenou display: inline
sa mení šírka elementu.
Skutočne sa teraz šírka elementu prispôsobuje obsahu. Tu je prehľad o tom, akých hodnôt môže byť vlastnosti display
priradených:
• none
– nezobrazuje sa
• block
– element sa zobrazuje ako blokový, vytvára nový riadok.
• inline
– element sa zobrazuje ako inline, teda v plynulom texte.
• inline-block
– vonkajšie sa správa ako blok, pre ktorý je možné definovať výšku, šírku a vonkajší odstup. Každý element však zostáva v plynulom texte. Je to teda kombinácia blokového a inline elementu.
• list-item
– element sa zobrazuje ako blokový, pred ním je vložený odrážkový znak.
• run-in
– podľa obsahu sa správa ako blokový alebo inline element.
• table
– má rovnaký efekt ako známy element table
z HTML.
• inline-table
– má rovnaký efekt ako element table
, avšak zobrazený inline.
• table-row
– element obsahuje vedľa seba usporiadané potomkovské elementy. Má rovnaký efekt ako HTML prvok tr.
• table-cell
– element predstavuje bunku tabuľky a má rovnaký efekt ako prvky th a td z HTML.
• table-row-group
– element obsahuje skupinu prvkov s viacerými vedľa seba usporiadanými potomkami a funguje podobne ako tbody
v HTML.
• table-header-group
– element obsahuje skupinu prvkov s viacerými vedľa seba usporiadanými potomkami a funguje podobne ako thead
v HTML.
• table-footer-group
– element obsahuje skupinu prvkov s viacerými vedľa seba usporiadanými potomkami a funguje podobne ako tfoot
v HTML.
• table-column
– popisuje vlastnosti buniek stĺpca. table-column
má rovnaký efekt ako prvok col z HTML.
• table-column-group
– tento element obsahuje skupinu prvkov, cez ktoré sa definujú vlastnosti buniek stĺpca. Funguje podobne ako prvok colgroup
z HTML.
• table-caption
– definuje titulok tabuľky. Vlastnosť má rovnaký efekt ako prvok caption z HTML.
Skutočne CSS ponúka rôzne možnosti zobrazenia pre rôzne typy prvokov. Tieto majú kľúčovú úlohu v súvislosti s pozíciou prvkov. Viac informácií nájdete v nasledujúcich návodoch.