Veronika Pavlíková PhD Student and Software Developer

Struktura a vizualizace webové stránky

Na dnešním cvičení se podíváme na to, jak správně navrhnout a vytvořit strukturu webové stránky tak, aby byla sémanticky správná. Prozkoumáme jednotlivé HTML elementy a podíváme se způsob jejich použití. Následně si prakticky ukážeme CSS box model a vysvětlíme, jak s ním pracovat.

Struktura webové stránky

Struktura webové stránky je logické a sémantické uspořádání jejích částí. Jinak řečeno se jedná o kostru stránky, do které je zasazen další obsah.

Strukturu webové stránky lze přirovnat ke struktuře novin, případně časopisů. Stejně jako noviny mají hlavičku s názvem a datem, obsah rozdělený do článků, rubrik a sekcí, a nakonec zápatí s informacemi o vydavateli, i webová stránka má své části. Každá část má svůj účel a dohromady tvoří přehlednou a logickou strukturu, která návštěvníkům usnadňuje orientaci a hledání informací.

Strukturální elementy

Základní strukturu webové stránky tvoříme pomocí strukturálních elementů. Těmito elementy jsou:

Podívejme se nyní na pár webových stránek a zkusme si určit základní strukturální elementy. Konkrétně se podíváme na stránky katedry informatiky, letiště Václava Havla a wikipedie.

Další elementy

Pro vytvoření kompletní webové stránky si pouze se strukturálními elementy nevystačíme. Do základní struktury stránky (kostry) musíme doplnit další HTML elementy, které popíší obsah.

Kromě těchto sémantických elementů existují generické kontejnery <div> a <span>, které nemají samy o sobě význam, ale používají se pro seskupování nebo stylování obsahu.

CSS box model

CSS box model je základní stavební jednotka každého HTML elementu, který se zobrazuje v prohlížeči. Každý element totiž není jen samotný obsah – text, obrázek nebo odkaz – ale vždy tvoří obdélníkový box, který můžeme pomocí CSS ovlivňovat.

Box se skládá ze čtyř hlavních částí:

Díky box modelu můžeme přesně určovat velikost, prostor a vzhled jednotlivých prvků, což je základem pro jejich umístění na stránce.

Pojďme se nyní podívat na to, jak s ním pracovat.

Rámeček

Rámeček slouží k vizuálnímu oddělení elementu od jeho okolí, případně k jeho zvýraznění. Můžeme mu nastavit tloušťku, styl (spojitá, přerušovaná nebo tečkovaná čára) a barvu.

.simple-border { border: 1px solid gray; }

Každou stranu rámečku můžeme také nastavit zvlášť, pomocí vlastností border-top, bottom, right a left.

Vnitřní okraj

Vnitřní okraj (padding) je prostor mezi obsahem prvku a jeho rámečkem. Slouží k tomu, aby text nebo jiný obsah nebyl nalepený přímo na okraj, vytváří tedy místo navíc. Jeho použití je přímočaré. Nadefinujeme, kde všude chceme mezeru mít (top, right, bottom, left) a určíme její velikost.

.simple-space {padding: 20px 15px 20px 15px;}

Vnější okraj

Vnější okraj (margin) je prostor mezi rámečkem prvku a venkovní hranou elementu, který ho odděluje od ostatních prvků na stránce. Slouží tedy k tomu, aby mezi jednotlivými prvky na stránce vznikl dostatečný odstup. Jeho použití je jako u paddingu přímočaré: nadefinujeme, kde chceme mezeru mít (top, right, bottom, left), a určíme její velikost.

.simple-space {margin: 20px 15px 20px 15px;}

Kromě zadání přesné velikosti okraje lze použít hodnotu auto. To znamená, že prohlížeč sám nastaví velikost okrajů. Toto nastavení lze použít k vycentrování elementu na stránce – pokud má element menší šířku než jeho rodič, prohlížeč rovnoměrně rozdělí volný prostor vlevo a vpravo, a prvek tak stojí uprostřed.

Zobrazení a viditelnost elementu

V CSS se zobrazení elementu určuje vlastností display. Rozlišujeme tři základní typy zobrazení:

Viditelnost elementu

Viditelnost elementu můžeme nastavit pomocíá vlastností display nebo visibility. Máme opět tři základní typy:

Obsah elementu

Velikost části určené pro obsah lze nastavit pomocí vlastností width, height, min-width, min-height, max-width a max-height. Toto nastavení se nám může hodit pro nespočet příkladů. Při omezení výšky nebo šířky může někdy dojít k přetečení obsahu. To následně můžeme řídit pomocí vlastnosti overflow (např scroll, auto).

Rozměry elementu

Pokud chceme elementům nastavovat výšku a šířku, musíme brát v potaz i jeho rozměry. Ve výchozím nastavení (box-sizing: content-box) se do width a height nezapočítává padding ani border. Vzpoměňmne si na příklad z přednášky:

.box {
  width: 100px;
  border: 1px solid gold;
  padding: 10px;
}

Skutečná velikost elementu zde bude 122 pixelů. To může být neintuitivní, protože se zdá, že jsme šířku přeci nastavili na 100px. Co se skutečně započítává do height a width je určeno vlastností box-sizing. Ta může nabývat dvou hodnot:

Odkaz na dobrovolné úkoly k dnešnímu cvičení.