Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

14. diel - Obtekanie v HTML - Float, Tieň

V predchádzajúcom cvičení, Riešené úlohy k 7.-13. lekciu HTML a CSS, sme si precvičili získané skúsenosti z predchádzajúcich lekcií.

Naposledy sme v HTML/CSS tutoriále skončili vložením tagu <article>, v ktorom sa nachádzala hlavička (<header>) a sekcia s článkom (<section>). Naša stránka vyzerá asi takto:

My First Webstite
index.html

Dnes si ukážeme, ako k lepšiemu rozvrhnutiu našej stránky využijeme obtekanie prvku a posunieme týmto náš obrázok vpravo vedľa textu. Pozrieme sa tiež ako je možné využiť nastavenie tieňa.

Plávajúci obsah (float)

Float umožňuje nastaviť obtekanie elementu ďalším obsahom – napríklad ak chceme do textu umiestniť obrázok a chceme, aby ho text nejakým spôsobom obklopoval (tak, ako to poznáme napríklad z Wordu a iných textových editorov).

Predtým sa používal float na pozíciovanie elementov v layoutu vedľa seba. Toto použitie je dnes už zle. Používame na to flexbox, o ktorom si povieme neskôr. Nikdy by sme float nemali používať na vytváranie layoutu stránky!

Niekto si myslí, že sa float už nemá vôbec používať. Float ako taký však zle nie je a je to úplne validná vlastnosť na obtekanie elementov v texte.

Vlastnosť float použijeme na obrázok s naším avatarom, ktorý má už priradenú triedu .avatar.

V CSS teraz upravíme selektor pre triedu .avatar, kde sme doteraz mali definovanú iba šírku. K nej vložíme tieto ďalšie vlastnosti:

.avatar{
    float: right;
    width: 300px;
    padding-left: 10px;
    filter: grayscale(1);
}

Tie nám umožnia nastaviť nasledujúce:

  • vlastnosť float s hodnotou right umožní, že obrázok bude umiestnený vpravo a obtekaný textom zľava

Rovnú sme obrázku nastavili aj niekoľko ďalších vecí:

  • vlastnosť padding, o ktorej si povieme ďalej v kurze, zaistí odsadenie obrázku, aby sa text nenalepil priamo na fotografiu
  • a pridanie čiernobieleho vzhľadu vďaka vlastnosti filter: greyscale(1);, kde grayscale môže nadobúdať číselné hodnoty 0, 0.1, 0.2, ... až 1 podľa toho, na koľko chceme obrázok "sčernobieliť". Hodnotu vlastnosti grayscale možno uvádzať aj v percentách. Môžeme si vyskúšať zadať napr. hodnotu 0.5 (alebo 50%), aby sme vedeli, že aj také možnosti štýlovania CSS ponúka.

Floatom je možné do textu vložiť aj iné elementy ako obrázky, je im však vždy potrebné nastaviť pevnú šírku.

Ukončenie obtekania (clear)

Niekedy sa môže stať, že je text kratší, než je výška obrázku. Obrázok potom môže začať obtekať ďalší element, ktorý je za textom a stránka by sa nám rozhodila. Preto na koniec textu vložíme element s vlastnosťou clear. Na taký "čistič" nesmieme zabudnúť a obtekanie na konci obsahu takto zastaviť. Preto si ho teraz rovno pridáme.

Na koniec <section> teda pridáme <div> s triedou cleaner, teda celým zápisom <div class="cleaner"></div>:

<section>
    <img src="images/avatar.jpg" class="avatar" alt="Programmer HoBi" />

    <p>Welcome to my first website. I'm just learning how to create websites, but I think I'm doing quite well.
    </p>

    <p>My name is Honza Bittner and I am 16 years old. I attend the Secondary Industrial School in Česká Lípa, specializing in IT. You can contact me at <a href="contact.html">contact page</a>.
    </p>
    ...

    <div class="cleaner"></div>
</section>

Následne si v CSS súbore pre túto triedu vytvoríme selektor .cleaner.

.cleaner{
    clear: both;
}

Vlastnosť clear nadobúda hodnoty left, right alebo both, podľa toho, z akej strany chceme obtekanie plávajúcich elementov ukončiť. Obvykle chceme jednoducho na konci textu ukončiť všetko obtekanie, pretože ďalej už text nepokračuje, a vložíme tam teda jednoducho <div> s clear: both.

Výsledkom teda je, že je fotka v šedých tónoch a obtekaná textom, čo je najlepšie vidieť pri zmenšení prehliadača:

My First Webstite
index.html

Tieň

S tieňom sme sa už v CSS stretli, bol to tieň pri texte pomocou CSS3 vlastnosti text-shadow. Tieň môžeme nastaviť ľubovoľnému elementu na stránke pomocou vlastnosti box-shadow. Ukážeme si to na elemente <article> s článkom, aj keď tieň v dizajne nie je, aby sme si vlastnosť vyskúšali. Potom tieň zas odoberieme. Do selektora article pridáme nastavenie box-shadow:

article {
    margin: 0 auto;
    ...
    box-shadow: 2px 2px 7px #1c2228;
}

Zadali sme niekoľko hodnôt:

  • Prvé 2 hodnoty (2px 2px) sú pozície tieňa.
  • Treťou hodnotou (7px) je rozostrenie.
  • Poslednou hodnotou je farba.

Vlastnosť ostyluje obdĺžnikový tieň okolo elementu. Pozrime sa na výsledok:

My First Webstite
index.html

Po vyskúšaní si vlastnosť box-shadow s uvedenými hodnotami zo selektora article zmažeme.

V budúcej lekcii, Rámček a boxmodel v CSS, si vysvetlíme tzv. boxmodel a dokončíme oblasť s článkom.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 1x (2.27 MB)
Aplikácia je vrátane zdrojových kódov v jazyku HTML a CSS

 

Predchádzajúci článok
Riešené úlohy k 7.-13. lekciu HTML a CSS
Všetky články v sekcii
Webové stránky krok za krokom
Preskočiť článok
(neodporúčame)
Rámček a boxmodel v CSS
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
6 hlasov
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity