Techniky rozvržení KAPITOLA 2



Podobné dokumenty
O CSS podrobněji. Box model Document flow Layout

Rozměry, okraje a rámečky

Mgr. Vlastislav Kučera Header, footer, navv, article, section, boxy, margin, padding, border

TNPW1 Cvičení aneta.bartuskova@uhk.cz

CSS 1. Blokový model Každý element tvoří obdélník. Dva druhy obdélníků: - Blokové; - Vložené. Zde je dlouhý text v kterém nachazí vložené...

TVORBA WEBOVÝCH STRÁNEK

Přehled základních html tagů

CSS 1 Relativní pozicování Relativní pozicované bloky jsou pozicované vůči nornálnímu toku elementů dokumentu. (nejsou vyjmuty z normálního toku jako

Název: VY_32_INOVACE_PG4113 Relativní pozicovaní a jeho využití

CSS Stylování stránek. Zpracoval: Petr Lasák

NSWI096 - INTERNET. CSS kaskádové styly. Mgr. Petr Lasák

Blokový model v CSS:

Tvorba webových stránek

Název: VY_32_INOVACE_PG4119 Tipy a triky, rozdíly mezi prohlížeči

TNPW1 Cvičení

1: Úvod 9. Co a kde v knize naleznete... 9 Zdroje Doporučení pro další studium... 11

Internetové publikování. Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)

Kaskádové styly základy grafiky

Základy CSS (3. přednáška)

Kapitola 5 Tvoříme tabulky

Soukromá střední odborná škola Frýdek-Místek, s.r.o. VY_32_INOVACE_92_IVT_HTML_12_nase_www

Rozvržení stránky. Co se v modulu dozvíte? Pozicování

Bloky. Tag Význam Párový. p odstavec nepovinně. br řádkový zlom ne. div oddíl ano. center vycentrování ano. h1 nadpis 1.

CSS (Cascading Sytle Sheets) neboli kaskádové styly vznikly jako souhrn metod pro úpravu vzhledu stránek.

Tvorba www-stránek. Příkazy jazyka HTML. Budeme pracovat následovně: Základní struktura webové stránky. Příkazy sekce HEAD

6. Formátování: Formátování odstavce

(X)HTML, CSS a jquery

22. Tvorba webových stránek

KAPITOLA 1 Přehled aktuálního vývoje webů 11

Práce se styly 1. Styl

tvoříme web HTML/CSS

Pseudotřídy. Střední škola informatiky, elektrotechniky a řemesel Rožnov pod Radhoštěm. Modernizace výuky s využitím ICT, CZ.1.07/1.5.00/34.

Ukázka knihy z internetového knihkupectví

Dokument a jeho části oddíly, záhlaví, zápatí

Úvod do jazyka HTML (Hypertext Markup Language)

Tvorba webu. Kaskádové styly (CSS) Martin Urza

Zobrazování bannerů podporují pouze nově vytvořené šablony motivů vzhledu.

Soukromá střední odborná škola Frýdek-Místek, s.r.o. VY_32_INOVACE_135_IVT_HTML_08_tvorba_www

Louis Lazaris. CSS Okamžitě

Kaskádové styly. CSS (Cascading Sytle Sheets) neboli kaskádové styly vznikly jako souhrn metod pro úpravu vzhledu stránek.

Tvorba webových stránek

GOODWILL vyššší odborná škola, s. r. o. P. Holého 400, Frýdek-Místek

Nová struktura souborů a složek

Název školy: SOŠ NET OFFICE Orlová, spol. s r.o. Vypracoval/a: Mgr. Alena Sovová

Prezentace. Prezentace. 6. InDesign obtékání textu, zarovnání. Vytvořil: Tomáš Fabián vytvořeno

Vývoj Internetových Aplikací

Inovace a zkvalitnění výuky prostřednictvím ICT Design a vzhledové vlastnosti webových stránek Vlastnosti CSS pro pozicování Ing.

Dokument XHTML. Prohlížeč. styl CSS. Výstupní dokument. Soubor DTD

CSS vlastnosti - stručný prehľad. Vlastnosti písma. Vlastnosti farby a pozadí. font-family. font-style. font-variant. font-weight. font-size.

1. Začínáme s FrontPage

Základy HTML. Autor: Palito

PODPORA ELEKTRONICKÝCH FOREM VÝUKY

Tvorba fotogalerie v HTML str.1

Elektronické publikování - prezentace. 23. dubna 2009 VŠB - TUO. Beamer - grafické zpracování prezentace. Rostislav Šuta, sut017.

FFUK Uživatelský manuál pro administraci webu Obsah

dokumentu, respektive oddílu (více o oddílech v další kapitole). Nemůžeme

CSS kaskádové styly a jejich využití při tvorbě internetových stránek

Dokument ve formátu webové stránky vytvořený pomocí XHTML a CSS

David Tejzr I.2.C Společnost TzComp.cz

KAPITOLA 5. Základní stylování seznamů

CSS - stručná reference kaskádových stylů

Webové stránky. 4. Tvorba základní HTML webové stránky. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Referenční přehled vlastností CSS1 (Cascading Style Sheets, level 1)

SkautIS Remote Components absolventská práce

CSS styly. Cascading Style Sheets kaskádové styly

Úvod do CSS. Střední škola informatiky, elektrotechniky a řemesel Rožnov pod Radhoštěm. Modernizace výuky s využitím ICT, CZ.1.07/1.5.00/34.

Formát stránky, písma, odstavce Word 2007 egon. Formát stránky a písma, okraje, odstavce, oddíly

KAPITOLA 4 ZPRACOVÁNÍ TEXTU

Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

Obrázky. Tag Význam Párový Výskyt. img obrázek ne. img video ne. map klikací mapa. area oblast v klikací mapě ne

Tvorba webových stránek

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

Gabriela Janská. Středočeský vzdělávací institut akademie J. A. Komenského

ŠKODA Portal Platform

CSS Kaskádové styly. formátování webových stránek

Flash - animace. 17. Změna tvaru - Flash. Vytvořila: Radka Veverková Vytvořeno dne: Flash. DUM číslo: 16 Název: Flash

Obsah. Úvodem 11 Komu je kniha určena 11 Forma výkladu 12 Cvičení a příklady ke knize 12

Kaskádové styly (CSS) Cascading Style Sheets

Soubor index.html se nachází na stejné úrovni jako adresář obrazky. Měla bych použít relativní adresu, že? Hmm.

PŘEDMĚT: PEK TÉMA: TVORBA TABULEK U SZ. Zpracováno: prezentace powerpoint Ing. Hana Augustinová 2012

Microsoft Word - Styly, obsah a další

Informatika pro moderní fyziky (8) Javascript, CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

<html> - párový tag, uzavírá celý dokument <head> - párový, určuje hlavičku dokumentu <body> - párový, uzavírá tělo dokumentu Př. Základní struktura

Microsoft Office. Word vzhled dokumentu

Tabulky. Přehled tagů z oblasti tabulek. Tag Význam Párový Výskyt. tr řádek tabulky nepovinně <table>, <tbody>, <thead>, <tfoot>

Tvorba webových stránek

EU-OPVK:VY_32_INOVACE_FIL19 Vojtěch Filip, 2014

Dokumentace k projektu

Obsah, oddíly, záhlaví a zápatí, číslování stránek Word egon. Obsah dokumentu, oddíly, záhlaví a zápatí, číslování

MODERNÍ WEB SNADNO A RYCHLE

PHP tutoriál (základy PHP snadno a rychle)

Tvorba stránek v HTML ve Wordu

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Internetové publikování. Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)

Sada 2 Microsoft Word 2007

Dotazy na médium KAPITOLA 4. V této kapitole: Zkoumáme vlastnosti média Dotazy na médium v praxi Využíváme příležitost

Formuláře. Téma 3.2. Řešený příklad č Zadání: V databázi formulare_a_sestavy.accdb vytvořte formulář pro tabulku student.

Transkript:

Techniky rozvržení KAPITOLA 2 V této kapitole: Box model Blokové versus řádkové elementy Zkrácené versus běžné vlastnosti jazyka CSS Rozvržení založené na obtékání Pozicování v jazyce CSS Responzivní web design Intuitivní rozměry s vlastností box-sizing Přidáváme další styly za účelem rozvržení Obtékané obrázky posledních receptů Styly pro rozvržení záhlaví Rozvržení propagační fotografie Rozvrhujeme zápatí Rozvrhujeme sekci Nejoblíbenější Kam se bude ubírat budoucnost rozvržení založených na stylech V této kapitole si představíme několik technik rozvržení. Praktickou zkušenost získáme, až je budeme implementovat do kostry, kterou jsme si vytvořili v kapitole 1, Úvod do jazyka CSS. Než s tím začneme, musíme si popsat ještě některé základní koncepce, které jsme si v předchozí kapitole neukázali. 35

KAPITOLA 2 Techniky rozvržení Box model Termín box model většinou označuje neviditelnou obdélníkovou oblast, kterou prohlížeč vytváří okolo každého elementu jazyka HTML. Tuto oblast tvoří čtyři základní komponenty, jejichž význam snadněji pochopíte pomocí diagramu z obrázku 2.1. VNĚJŠÍ OKRAJ RÁMEČEK VNITŘNÍ OKRAJ OBSAH Obrázek 2.1. Grafická reprezentace box modelu Velikost komponent box modelu je na tomto diagramu poněkud přehnaná. Jedinou velkou a dobře viditelnou oblastí elementu jazyka HTML bývá většinou obsahová oblast. Díky tomuto zveličenému diagramu si však lépe popíšeme jednotlivé komponenty box modelu, přičemž budeme postupovat zevnitř směrem ven: Obsah: obsahová část modelu v sobě skrývá samotný obsah (jak jinak). Obsahu jsme se lehce dotkli v kapitole 1, Úvod do jazyka CSS, když jsme si popisovali elementy jazyka HTML. Obsahem může být text, obrázky nebo cokoliv jiného viditelného, co chceme zobrazit uživateli na webové stránce. Vnitřní okraj: vnitřní okraj elementu určujeme prostřednictvím vlastnosti padding. Vnitřním okrajem rozumíme volnou oblast okolo obsahu. Velikost vnitřního okraje můžeme definovat pro každou stranu zvlášť (například levý vnitřní okraj lze specifikovat deklarací padding-left: 20px) nebo pro všechny strany najednou kupříkladu deklarací padding: 20px 10px 30px 20px. Při nastavování velikosti vnitřního okraje na všech čtyřech stranách zaráz používáme tzv. zkrácenou vlastnost. Později v této kapitole si předvedeme další zkrácené vlastnosti. Vlastnosti jazyka CSS, které přijímají více hodnot (jako vlastnost padding) mají obvykle stejné pořadí stran horní straně odpovídá první hodnota a pak se přesouváme po směru hodinových ručiček až k levé straně, kterou reprezentuje čtvrtá hodnota. V tomto případě má tedy horní vnitřní okraj velikost 20 pixelů, pravý vnitřní okraj velikost 10 pixelů, spodní vnitřní okraj velikost 30 pixelů a levý vnitřní okraj velikost 20 pixelů. 36

Blokové versus řádkové elementy Rámeček: rámeček elementu nastavujeme pomocí vlastnosti border. Jedná o zkrácenou vlastnost, která v sobě spojuje vlastnosti border-width, border-style a border-color. Oranžovou přerušovanou čáru o tloušťce 4 pixely bychom tudíž nakreslili okolo elementu deklarací border: 4px dashed orange. Vnější okraj: poslední komponentou box modelu je vnější okraj. Vnější okraj se podobá vnitřnímu okraji, a dokonce ho definujeme podobnou syntaxí (například margin-left: 15px nebo margin: 10px 20px 10px 20px). Na rozdíl od vnitřního okraje ale není vnější okraj součástí elementu. Vnější okraj vytváří volnou oblast mezi cílovým elementem a okolními elementy. Každý element na webové stránce má tyto komponenty box modelu. Někdy se výchozí vlastnosti těchto komponent mohou lišit u některých typů elementů. Například formuláře mají určitou výchozí šířku a výšku, i když tyto vlastnosti nenastavíme. V kapitole 1, Úvod do jazyka CSS, jsme si řekli, že neuspořádané seznamy (elementy ul) mohou mít předdefinované vnitřní a vnější okraje z interní šablony stylů webového prohlížeče. Blokové versus řádkové elementy Dále bychom si měli vysvětlit jednu důležitou koncepci jazyka HTML většina elementů tohoto jazyka spadá do některé ze dvou kategorií, a to buď blokové nebo řádkové. Blokový element je spíše strukturální s cílem vytvořit určité rozvržení, kdežto řádkové elementy se obvykle nacházejí uvnitř blokových elementů a splývají s textem. K blokovým elementům patří kupříkladu elementy div, p a section, zatímco mezi řádkovými elementy můžeme najít například elementy span, b a em. To bylo jen několik málo příkladů. V kódu jazyka CSS můžeme změnit výchozí chování těchto elementů, a to pomocí vlastnosti display: span { display: block; Jak se asi chová blokový jinak oproti řádkovému elementu, není tak těžké uhádnout. Pochopení tohoto rozdílu je pro začínající vývojáře jazyka CSS velmi důležité. Obrázek 2.2 znázorňuje tento rozdíl. Blokové elementy mají určité vlastnosti. Pokud jim nenastavíme konkrétní šířku, vždy se vodorovně roztahují na šířku svého rodičovského kontejneru a svisle se roztahují na výšku svého obsahu. Blokovému elementu tedy nemusíme nastavovat šířku, dokud například nechceme, aby byl užší, než je oblast vymezená jeho rodičovským elementem. Zcela výjimečně jsme donuceni nastavit blokovému elementu výšku většinou ho necháme zvětšit se na velikost jeho obsahu. 37

KAPITOLA 2 Techniky rozvržení TOTO JE BLOKOVÝ ELEMENT OBDÉLNÍK ZA SLOVEM ŘÁDKOVÝ V TOMTO ODSTAVCI OZNAČUJE ŘÁDKOVÝ ELEMENT Obrázek 2.2. Znázornění rozdílu mezi blokovým a řádkovým elementem Již víme, že blokové elementy jsou strukturálními elementy, a proto standardně začínají až pod elementy, které zapíšeme do kódu jazyka HTML dříve. To je klíčová část pochopení rozdílu mezi blokovými a řádkovými elementy. Řádkové elementy se totiž běžně chovají jako věty, slova a písmena v odstavcích. Z obrázku 2.2 je patrné, že řádkový element splývá přirozeně s textem a většinou obsahuje pouze text nebo jiné řádkové elementy. Z tohoto důvodu na řádkové elementy obvykle aplikujeme vlastnosti jazyka CSS, které ovlivňují vzhled textu. Například vlastnosti line-height a letter-spacing jsou vlastnosti určené pro řádkové elementy. Tyto vlastnosti tedy nebudou mít vliv na samotné blokové elementy. Kromě toho není možné řádkovým elementům nastavovat šířku a výšku a také budou ignorovat horní a spodní vnější okraje. Na druhou stranu levé a pravé vnitřní a vnější okraje u nich definovat můžeme. Pro účely rozvržení webové stránky se může výjimečně stát, že budeme potřebovat, aby se element choval z části jako blokový element, ale z části rovněž jako řádkový element. To je možné, pokud elementu nastavíme vlastnost display s hodnotou inline-block: display: inline-block; Tímto způsobem získáme to nejlepší z obou světů element zůstane součástí textu a budeme na něho moct aplikovat textové vlastnosti jazyka CSS, ale současně mu bude možné nastavovat šířku, výšku a vnější okraje stejně jako blokovému elementu. Dále v této kapitole použijeme tento řádkově-blokový element pro stylování hlavní navigace naší ukázkové stránky. 38

Zkrácené versus běžné vlastnosti jazyka CSS Zkrácené versus běžné vlastnosti jazyka CSS Neméně důležité je porozumět rozdílu mezi zkrácenými a běžnými vlastnostmi jazyka CSS. Řekli jsme si, že deklarace v jazyce CSS se skládá z vlastnosti, dvojtečky, hodnoty a středníku. Zkrácené vlastnosti se však mírně liší. Zkrácená vlastnost ve skutečnosti přijímá sadu hodnot, přičemž každá z nich odpovídá nějaké běžné vlastnosti jazyka CSS. Ukažme si proto příklad, který jsme si již představili zkrácenou vlastnost border: border: dashed 2px blue; Výše uvedené pravidlo stylu obsahuje jedinou deklaraci, ale lze ho přepsat i takto: border-style: dashed; border-width: 2px; border-color: blue; Z tohoto srovnání je jasné, proč jen zřídka narazíme na běžné vlastnosti, které určují vzhled rámečku. Je mnohem jednodušší použít zkrácenou vlastnost navíc si vystačíme s kratším kódem, což ve velkém projektu bude mít menší pozitivní vliv na rychlost načítání stránky a mnohem větší vliv na údržbu kódu. Jestliže v deklaraci zkrácené vlastnosti vynecháme některou hodnotu, jí příslušná běžná vlastnost si obnoví svou výchozí hodnotu. Nyní spojíme dvě pravidla stylů, abychom zjistili, jak to funguje v praxi: border-style: dashed; border-width: 2px; border-color: blue; border: solid; color: green; V tomto případě používáme stejný selektor u dvou rozdílných pravidel stylů. V kapitole 1, Úvod do jazyka CSS, jsme se naučili, že druhé pravidlo stylů má v takové situaci přednost před prvním přepisuje tedy stejné vlastnosti z prvního pravidla stylu. 39

KAPITOLA 2 Techniky rozvržení V prvním pravidle stylu definujeme všechny tři běžné vlastnosti pro rámeček specifikujeme mu modrou přerušovanou čáru o tloušťce 2 pixely. Co je však výsledkem uplatnění obou pravidel stylů? Rámeček získá šířku 3 pixely (výchozí tloušťka viditelného rámečku) a zelenou barvu místo modré. Je tomu tak z toho důvodu, že pomocí zkrácené vlastnosti border definujeme styl rámečku solid (plná čára), ale už nedefinujeme hodnoty pro zbývající dvě vlastnosti border-width a border-color. Z tohoto příkladu je také patrné, že vlastnost color neurčuje jen barvu textu, ale také výchozí barvu rámečku. Tento příklad se může zdát složitý, ale zkuste s ním trochu experimentovat a určitě ho za chvíli pochopíte. Měli byste si odnést ponaučení, že pokud nenastavíte všechny hodnoty zkrácené vlastnosti, chybějící běžné vlastnosti získají své výchozí hodnoty nedědí je od existujících pravidel stylů. Většinou to nezpůsobuje žádné problémy, ale v některých situacích můžeme získat neočekávané výsledky, jak popisuje článek A Primer on the CSS Font Shorthand Property 11. Další důležitý poznatek je, že u některých zkrácených vlastností právě uvedená poučka neplatí chybějící běžné vlastnosti se nevracejí ke svým výchozím hodnotám, ale dědí aktuálně nastavované hodnoty. Typickým příkladem jsou vlastnosti margin a padding:.panel { padding: 20px 10px 15px; Všimněte si, že teď specifikujete jen tři hodnoty. Na začátku této kapitoly jste se dozvěděli, že hodnoty mají být čtyři a představují postupně velikost vnitřního okraje na horní, pravé, spodní a levé straně. Tentokrát čtvrtá hodnota (velikost levého vnitřního okraje) chybí, ale prohlížeč automaticky nastaví 10 pixelů, což je velikost opačného okraje (druhá hodnota). Kdybyste vynechali dvě hodnoty, velikost spodního okraje by se shodovala s velikostí horního okraje podobně, jako by se shodovaly velikosti levého a pravého okraje. Stejný princip platí také pro zkrácené vlastnosti margin, border-color a border-width. Následující dvě pravidla stylů se tedy zcela shodují: margin: 10px 20px 10px 20px; margin: 10px 20px; V první deklaraci specifikujeme explicitně všechny čtyři hodnoty (pro vlastnosti margin-top, margin-right, margin-bottom a margin-left). Ve druhé deklaraci vynecháváme hodnoty pro 11 http://www.impressivewebs.com/a-primer-on-the-css-font-shorthand-property/ 40

Rozvržení založené na obtékání vlastnosti margin-bottom a margin-left, ale to nic nemění na tom, že stejně zdědí hodnoty vlastností margin-top a margin-right. Níže uvedené deklarace jsou rovněž duplicitní: border-width: 10px 10px 10px 10px; border-width: 10px; Uvnitř první deklarace rovněž uvádíme všechny čtyři hodnoty, ale v druhé deklaraci necháváme na prohlížeči, aby zkopíroval tři chybějící hodnoty z jediné hodnoty, kterou jsme mu uvedli, a tou je šířka horního rámečku. Měli byste se naučit používat zkrácené vlastnosti co nejdříve. Zbavíte tím svůj kód zbytečných znaků, díky čemuž bude čitelnější. Rozvržení založené na obtékání Pro začátek si představíme techniku rozvržení, která jako jediná funguje ve všech webových prohlížečích a nepoužívá tabulky jazyka HTML (tabulky nejsou vhodné pro rozvržení stránky 12 ). Existuje několik nových technik, které si ukážeme dále v této kapitole. Ty však podporují jen některé moderní prohlížeče, a tudíž rozvržení pomocí obtékání je stále nezbytné, pokud chceme, aby naše stránky vypadaly dobře i ve starších prohlížečích (například v prohlížeči Internet Explorer ve verzi 7, 8 a 9). Dokonce i moderní prohlížeče neměly v době psaní této knihy dokonalou podporu těchto nových technik, takže obtékání stále kralovalo způsobům rozvržení stránky pomocí jazyka CSS. U naší webové stránky Vyhledávač receptů existuje ideální místo, kde můžeme uplatnit rozvržení založené na obtékání oblast s hlavním obsahem. Tuto oblast bychom chtěli svisle rozdělit do dvou sloupců, jak ukazuje obrázek 2.3. Přidejme tedy několik kaskádových stylů, abychom rozvrhli tuto část stránky:.hlavni { width: 1020px; margin: 0 auto;.posledni { width: 640px; 12 http://stackoverflow.com/questions/83073/why-not-use-tables-for-layout-in-html 41

KAPITOLA 2 Techniky rozvržení float: left;....postranni-panel { width: 360px; float: right; Obrázek 2.3. Dvousloupcová oblast vyhledávače receptů Tyto selektory jsme si přichystali v kapitole 1, Úvod do jazyka CSS. V dokumentu HTML máme element s třídou hlavni, který obsahuje oba tyto sloupce. Na předchozím kódu je zajímavé především to, jakou deklaraci vlastnosti margin přidělujeme elementu s třídou hlavni. Dříve jsme si řekli, že margin je zkrácená vlastnost, a výše uvedená deklarace odpovídá následující: 42

Rozvržení založené na obtékání.hlavni { margin: 0 auto 0 auto; Pro jednoduchost jsme vynechali poslední dvě hodnoty, jelikož prohlížeč je stejně sám doplní. Zatímco hodnota 0 je zřejmá (element s třídou hlavni nebude mít žádný horní a spodní vnější okraj), s hodnotou auto jsme se ještě nesetkali. Pokud přiřadíme hodnotu auto levému a pravému okraji elementu, u nějž jsme explicitně specifikovali šířku, umístíme tento element vodorovně na střed jeho rodičovského elementu. Neumísťujeme však na střed obsah elementu, ale samotný element. Rodičovským elementem elementu s třídou hlavni je element body, jenž nemá žádnou explicitně nastavenou šířku. V důsledku této deklarace vlastnosti margin se tedy bude element s třídou hlavni nacházet vždy na středu okna webového prohlížeče, a to bez ohledu na jeho šířku. Tuto techniku si ideálně nechejte vytetovat na hřbet ruky, ať ji nezapomenete budete ji potřebovat často. Funguje ale jen při umísťování elementů na střed ve vodorovném směru. Umísťování elementů na střed svisle je v jazyce CSS o něco těžší. 13 Tip: Jednotky v jazyce CSS U příkladů v této knize jste si možná všimli, že některé číselné hodnoty mají příponu px. Tato přípona označuje pixel, přičemž se jedná o jednotku jazyka CSS. Dalšími jednotkami jsou kupříkladu % (procenta), em nebo rem. Více se o jednotkách kaskádových stylů dozvíte v následující kapitole. Dále v naší šabloně stylů vybíráme dva elementy uvnitř elementu s třídou hlavni. Prvním z nich je levý sloupec, který má třídu posledni (bude sloužit jako přehled posledních receptů). Druhým sloupcem je element aside, jemuž jsme přidělili třídu postranni-panel. V této kapitole jsme si vysvětlili rozdíly mezi blokovými a řádkovými elementy. Oba naše sloupce jsou blokové elementy, takže standardně se zobrazují pod sebou, a ne vedle sebe tak, aby vyplňovaly prostor vymezený jejich rodičovským elementem (v tomto případě se jedná o element s třídou hlavni), což bychom potřebovali. Abychom dosáhli dvousloupcového rozvržení obsahu, používáme vlastnost float, s jejíž pomocí sdělujeme prohlížeči, na jakou stranu naší stránky bychom chtěli umístit jednotlivé elementy. Vlastnost float přijímá některou z těchto hodnot: none, left, right nebo inherit. Požadovaného výsledku tudíž dosahujeme tak, že používáme deklaraci float: left pro levý sloupec a deklaraci float: right pro pravý sloupec. Navíc definujeme šířku obou sloupců tak, aby vypadaly podobně jako na našem návrhu z programu Photoshop. V této fázi by měl obsah elementu s třídou hlavni vypadat podobně jako na obrázku 2.4. 13 http://blog.themeforest.net/tutorials/vertical-centering-with-css/ 43

KAPITOLA 2 Techniky rozvržení Obrázek 2.4. Po přidání vlastnosti float jsme získali dva sloupce Naše stránka je zatím poněkud nevýrazná, že? Dosud jsme nenapsali mnoho stylů, takže současný vzhled je spíše výsledkem načtení souboru Normalize.css spolu s výchozími deklaracemi webového prohlížeče (například modrý text odkazů). Rušíme obtékání Rušit obtékání musíme u téměř všech stránek, v nichž používáme rozvržení založené na obtékání. Aby bylo jasnější, proč tomu tak je, přidejme dočasně dvě deklarace k elementu s třídou hlavni, což je element, který obsahuje naše obtékané sloupce:.hlavni { width: 1020px; margin: 0 auto; outline: solid 1px red; 44

Rušíme obtékání background: green; Poslední dvě deklarace jsou pouze dočasné a mají za úkol demonstrovat problém s obtékáním. Obrázek 2.5 ukazuje, co se stane, když přidáme tyto styly a obnovíme stránku. Obrázek 2.5. Obtékané sloupce způsobí, že se jejich rodičovský element smrskne Očekávali bychom, že pod obsahem elementu s třídou hlavni se objeví zelené pozadí a okolo něj červený obrys. Vidíme však pouze 2 pixely vysokou červenou čáru nahoře tohoto elementu. Stalo se to právě proto, že obsahuje obtékané dceřiné elementy. Pokud element obsahuje obtékané elementy a žádné neobtékané elementy, sbalí se, jako by v něm vůbec nic nebylo. Postačí nám tedy zrušit některé z deklarovaných obtékání a zelené pozadí a červený obrys se objeví. Tuto situaci tedy vyřešíme tak, že zrušíme obtékání. Vložíme proto následující kód do našeho souboru styly.css:.cf:before,.cf:after { content: ; 45