HTML & CSS pro začátečníky

HTML & CSS pro začátečníky (část 36): Model boxu

Všechna videa tutoriálu

V CSS jsou prvky zásadně zpracovávány jako obdélníkové rámečky nebo pruhy. Pro popis rámečků jsou použity následující - již vám jistě známé - vlastnosti:

width - šířka prvku
height - výška prvku
left - vzdálenost zleva
right - vzdálenost zprava
top - vzdálenost shora
bottom - vzdálenost zdola
margin - vnější okraj
border - obruba prvku
padding - vnitřní mezera, tedy vzdálenost od obruby k obsahu prvku

Tyto vlastnosti byly již představeny.

Celková šířka prvku se skládá z šířky jednotlivých údajů. (Totéž platí pak mimochodem také pro výšku).

Příklad:

div#box {
   width: 100px;
   padding: 20px;     /* po 20px zleva a zprava /
   border: 2px solid;  po 2px zleva a zprava /
   margin: 0 30px;     po 30px zleva a zprava */
 }

Jakou šířku má tento div-rámeček? Podívejme se na jednotlivé údaje:

• 100 pixelů

• 2krát 20 pixelů

• 2krát 2 pixelů

• 2krát 30 pixelů

To dává celkovou šířku prvku 204 pixelů.

Šířka a výška prvků se určují pomocí width a height. Pokud tyto údaje nejsou explicitně uvedeny ve stylovacím souboru, platí následující:

• Chybí-li width, bude rámeček zobrazen tak široký, jak okolní prvek.<

• Chybí-li height, bude prvek zobrazen tak vysoký, jak je jeho obsah.

Příklad:

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



V prohlížeči to vypadá následovně:

HTML a CSS pro začátečníky (část 36): Model boxu



Nadřazeným prvkem v rámci div-prvku je body. Rámeček se tedy skutečně zobrazí tak široký, jak body-prvek. Pokud jde o výšku, orientuje se podle obsahu.

Všechno na nulu

Každý prohlížeč má v sobě vestavěný stylovací soubor. V těchto souborech jsou definovány některé standardní hodnoty. Platí to například i pro padding a margin. Tyto standardní hodnoty se bohužel liší mezi různými prohlížeči. Tento aspekt komplikuje dosažení identických výsledků v jednotlivých prohlížečích v souvislosti s modelováním rámečků. Proto se doporučuje nastavit vzdálenosti, které jsou v prohlížečích přednastaveny, na nulu. Lze to udělat následujícím způsobem:

* { padding: 0; margin: 0; }



Přidejte tento řádek na začátek svého stylovacího souboru. Tímto způsobem můžete začít umisťovat rámečky na požadovaná místa.

Typy rámečků

Jak je prvek nakonec zobrazen a jak ovlivňuje ostatní prvky, záleží na typu prvku. Skutečně se rozlišuje mezi blokovými prvky a řádkovými prvky dle specifikace CSS. (Existují i jiné typy, které zde ale nejsou zmíněny, jelikož mají podřadnou roli).

Blokové prvky vždy vytváří nový řádek. Následující prvky také začínají v novém řádku. Typickými blokovými prvky jsou například p, div, h1, ul atd. Pro tyto prvky platí uvedené vlastnosti vnější okraj, vnitřní okraj, výška, šířka a obruba.

<h1>Digital Painting & Matte Painting: Definice kompozice obrázku</h1>
<p>Modul 2 - část 2: Obrázek je vždy celek. Nicméně vždy je třeba zvážit, kam by se měl divák jako první podívat.</p>

Pohled na výsledek v prohlížeči ukazuje, že h1 a p vytvářejí každý svůj vlastní řádek.

HTML & CSS pro začátečníky (část 36): Boxové modelování



Řádkové prvky naopak nevytváří vlastní odstavec, ale jsou zobrazovány v běžném toku textu. Typickými řádkovými prvky jsou span, em, strong, img, br atd. Pro řádkové prvky neplatí žádné vertikální vnější okraje ani šířkové a výškové údaje.

<h1><em>Digitální malba & Matná malba</em>: Definovat strukturu obrázku</h1>

<p>Modul 2 - část dva: <strong>Obrázek je vždy celek</strong>. Nicméně vždy je třeba zvážit, kam by se měl divák jako první podívat.</p>

A zde je pohled na výsledek:

HTML a CSS pro začátečníky (část 36): Model boxu.



Nyní můžete z elementů, které jsou původně blokové, vytvořit elementy inline.

<!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 - Část 2: <em>Obraz je vždy celek</em>. Vždy však musíte zvážit, kam by měl divák nejdříve pohlédnout.</p>
 </body>
 </html>

Zobrazte si výsledek v prohlížeči.

HTML & CSS pro začátečníky (část 36): Model boxu.



Barva pozadí nadpisu h1 signalizuje, že prvek zabírá celou šířku. Šířka se orientuje podle nadřazeného prvku body.

Nyní se dostává do hry vlastnost 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 - Část 2: <em>Obraz je vždy celek</em>. Vždy však musíte zvážit, kam by měl divák nejdříve pohlédnout.</p>
 </body>
 </html>



Pomocí display: inline se mění šířka prvku.

HTML & CSS pro začátečníky (část 36): Model boxu

Ve skutečnosti se šířka prvku nyní přizpůsobuje obsahu. Zde je přehled hodnot, které lze prveku přiřadit vlastností display:

none – neuvidí se

block – prvek se zobrazí jako blokový prvek a vytvoří nový řádek.

inline – prvek se zobrazí jako inline prvek a objeví se v textovém proudu.

inline-block – vzhledově se chová jako blokový prvek, ale můžete nastavit výšku, šířku a vnější okraje. Každý prvek však zůstává v textovém proudu. Jedná se tedy o kombinaci blokového a inline prvku.

list-item – prvek se zobrazí jako blokový prvek, ale před něj je přidáno odrážka.

run-in – vytvoří buď blokový nebo inline prvek v závislosti na obsahu.

table – chová se jako známý prvek table z HTML.

inline-table – chová se jako prvek table v přímém textu.

table-row – prvek obsahuje vedle sebe uspořádané dceřiné prvky. Chová se jako HTML prvek tr.

table-cell – prvek představuje buňku tabulky a chová se jako prvky th a td z HTML.

table-row-group – prvek obsahuje skupinu prvků s vedle sebe uspořádanými dceřinými prvky a chová se jako prvek tbody z HTML.

table-header-group – prvek obsahuje skupinu prvků s vedle sebe uspořádanými dceřinými prvky a chová se jako prvek thead z HTML.

table-footer-group – prvek obsahuje skupinu prvků s vedle sebe uspořádanými dceřinými prvky a chová se jako prvek tfoot z HTML.

table-column – tímto se popisují vlastnosti buněk sloupce. table-column se chová jako prvek col z HTML.

table-column-group – tento prvek obsahuje skupinu prvků, přes které jsou popisovány vlastnosti buněk sloupce. Chová se jako prvek colgroup z HTML.

table-caption – pomocí tohoto je definován popisek tabulky. Vlastnost se chová jako prvek caption z HTML.

Ve skutečnosti CSS nabízí různé možnosti zobrazení pro různé typy prvků. Tyto možnosti hrají významnou roli v souvislosti s pozicováním prvků. Více informací v dalších tutoriálech.