IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

5. diel - Bootstrap - Úvod do grid systémov

V minulej lekcii, Bootstrap - Obrázky , sme sa venovali obrázkom. Dnes sme sa dostali k samotnému grid systému Bootstrap. Dnešné a budúci lekcie patrí medzi tie najprínosnejšie z celého kurzu, naučíte sa používať veľmi jednoduchý a účinný nástroj. Grid systém Bootstrap je od verzie 4 postavený na flexboxu, jeho staršie verzie používali CSS vlastnosť float.

Úvod do grid systémov

Na začiatok by sa slušilo problematiku gridov načrtnúť, začnime pekne od začiatku. Rozdelenie obsahu do pravidelnej mriežky sa netýka len webov, ale tento princíp je používaný v podstate už od stredoveku a to nielen pre text, ale aj pre ilustrácie. Nájdeme ho v novinách a časopisoch. Možno viete, že logá väčšiny firiem sú tiež vytvorená na základe pravidelných tvarov, ktoré k sebe lícujú. Okrem toho, že mriežka plní estetickú funkciu, je pre ľudí takto zarovnaná informácie oveľa lepšie spracovateľná. Pozrime sa na layout populárnej Bootstrap šablónu Gantella pre administráciu webu:

Šablóna Gantella pre Bootstrap - Kompletný kurz CSS frameworku Bootstrap

Vidíme, že layout je rozdelený do šiestich pomyselných stĺpcov. Všetky kontajnery na stránke majú potom veľkosť len a len v násobkoch veľkosti týchto stĺpcov. Celý web pôsobí veľmi celistvým dojmom.

Ak budeme prvky pozicový na stránku ako nás napadne, môžeme dopadnúť ako legendárny stránky Penziónu na Hrubých lúkach, dnes už našťastie nahradené inou verziou.

Stránky penzióne na Hrubých lúkach - Kompletný kurz CSS frameworku Bootstrap

Tabuľky

V dobách už dávno minulých sa pre tvorbu layoutov internetových stránok používali tabuľky. Ich výhodou bolo, že obsah webu bol opticky zarovnaný do tabuľky, takže rozloženie pôsobilo pravidelne a vyvážene. Takáto tabuľková kostra zastaraného webu by mohla vyzerať napr. Nasledovne:

<table>
    <tr>
        <td colspan="2"><h1>Hlavička</h1></td>
    </tr>
    <tr>
        <td><h2>Menu</h2></td>
        <td>Obsah...</td>
    </tr>
    <tr>
        <td colspan="2"><small>Patička</small></td>
    </tr>
</table>

Výsledok v prehliadači:

Popovery v Bootstrap
tabulkovy_lay­out.html

Tabuľky sa pre pozicovanie prvkov na stránke už nepoužívajú kvôli 2 závažným nedostatkom.

  • Nie sú sémantickej - Tabulku vyhľadávače chápu ako nejaký zdroj údajov. Pokiaľ do nich vložíme celú stránku alebo aj jej časť s obsahom, nebudú tomu pravdepodobne rozumieť, čo sa nám môže prejaviť nižšia návštevnosťou.
  • Nie sú responzívne - Ak stránku s tabuľkou zmenšíme, tabuľka sa nezalomí, ale zobrazí sa škaredý posúvač. Na mobilných zariadeniach by bol tabuľkový web takmer nepoužiteľný.

Grid systémy

Webdesignéri premýšľali nad tým, ako vytvoriť mriežku bez elementu <table>, aby sa vyhli jeho nedostatkom. Tým sa vyvinuli tzv. Grid systémy. To sú predpripravené triedy, ktoré priraďujeme elementom <div> a tie následne získavajú určitú šírku. Systémy zvyčajne fungujú tak, že rodičovský element rozdelí do 12 stĺpcov. Skôr sa k tomu využívala šírka zadané v percentách, jeden stĺpec teda zaberal 8,33%. Dnes sa využíva flexbox. Číslo 12 bolo vybrané preto, že má mnoho deliteľov. Do kontajnera tak môžeme vložiť:

  • Element cez celú šírku (veľkosť 12 stĺpcov)
  • Element cez polovicu (veľkosť 6 stĺpcov)
  • Element cez tretinu šírky (veľkosť 4 stĺpce)
  • Element cez štvrtinu šírku (veľkosť 3 stĺpcov)
  • Element cez 1/6 šírky (veľkosť 2 stĺpcov)
  • A element cez 1/12 šírky (veľkosť 1 stĺpcov)

Samozrejme môžeme nastavovať aj násobky týchto hodnôt, napr. Vložiť do kontajnera element, ktorý zaberie 2/3 obsahu a teda bude nastavený na šírku 8 stĺpcov a pod. Naopak nie sme schopní vložiť napr. 5 elementov vedľa seba, môžeme vložiť buď 4 alebo 6. Toto obmedzenie je daňou za estetickú pravidelnosť danú mriežkou.

Skúsme si príklad s Bootstrapovým GRID:

<div class="container-fluid bg-light">
    <div class="row">
        <div class="col-3 border bg-success text-white">
            Čtvrtina
        </div>
        <div class="col-3 border bg-success text-white">
            Čtvrtina
        </div>
        <div class="col-6 border bg-warning">
            Polovina
        </div>
    </div>
</div>

S kontajnermi sme sa už zoznámili. Ak pracujeme s GRID, budeme definovať jeho riadky a stĺpce. Riadok obaľuje stĺpce a definujeme ho ako <div> sa triedou .row. Stĺpce môžeme definovať niekoľkými spôsobmi, ten najjednoduchšie je uviesť triedu col- a za pomlčku uviesť koľko stĺpcov gridu má stĺpec zaberať. Ak by sme chceli všetky stĺpce rovnako široké, priradili by sme im len triedu .col.

V príklade prvé 2 stĺpce zaberajú 3/12, teda štvrtinu obsahu. Ak ste si mysleli, že ako webdesigner nebudete potrebovať zlomky, budete možno trochu sklamaní :) Ďalšie zaberá 6/12 gridu, teda polovicu.

Výsledok v prehliadači:

Grid v Bootstrap
grid.html

Grid vyššie zatiaľ nie je responzívne, ako to docieliť si ukážeme nabudúce. Už nabudúce teda svoje vedomosti gridu dovŕšite a to lekcií Bootstrap - Grid systém Bootstrap . Tešte sa, bude to jazda! :)


 

Predchádzajúci článok
Bootstrap - Obrázky
Všetky články v sekcii
Kompletný kurz CSS frameworku Bootstrap
Preskočiť článok
(neodporúčame)
Bootstrap - Grid systém Bootstrap
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
3 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