Menu webstránky

Menu webovej stránky vytvoríme vďaka Bootstrapu pomerne jednoducho. Vo väčšine prípadov v praxi programátori tento kód kopírujú a zatiaľ nepoznám nikoho, kto by ho písal ručne, alebo poznal naspamäť, preto sa nezľakni, keď uvidíš trochu dlhší kód, ktorému možno v tejto chvíli nebudeš celkom rozumieť. Prejdeme si ho krok po kroku. :)

<div class="navbar-wrapper">
    <nav class="navbar navbar-default navbar-static-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Tu bude logo</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li><a href="#">O mne</a></li>
            <li><a href="#">Záujmy</a></li>
            <li><a href="#news">Aktualita týždňa</a></li>
          </ul>
          <ul class="nav navbar-nav">
            <li><a href="#contact"><img src="img/user-photo.png" class="img-circle" width=30 height=30 />Napíšte mi</a></li>
          </ul>
        </div>
      </div>
    </nav>
</div>

Čo ten kód vlastne znamená?

Týmto kódom sme vytvorili desktopové a zároveň už pre mobil pripravené responzívne navigačné menu.

V praxi je potrebné vedieť najmä čo znamenajú nasledujúce html tagy a triedy.

<nav class="navbar navbar-default navbar-static-top"></nav> - Definuje zobrazenie a typ navigačného menu.

Hodnoty, ktoré môžeš meniť:

  1. .navbar-default nám určuje defaultne sivé navigačné menu. Zmenou na .navbar-inverse bude navigačné menu čiernou farbou a text bude farbou bielou.
  2. .navbar-static-top nám určuje, že navigačné menu je navrchu webstránky. V praxi sa najčastejšie zamieňa za .navbar-fixed-top, čo znamená, že hlavička stránky bude vždy viditeľná bez ohľadu na to, kde na webe sa nachádzame.

<div class="navbar-header"></div> - obsahuje informácie, ktoré budú zobrazené iba na mobilnej verzii. V tomto prípade mobilná verzia obsahuje iba navigačné hamburger menu. V praxi sa zvykne do .navbar-header dávať napríklad odkaz na registráciu, prepínač jazykov, alebo ikonka nákupného košíka vrátane hamburger menu. Hamburger menu je definované pomocou informácií v <span></span> tagoch.

<a class="navbar-brand" href="#">Napríklad logo</a> - obsahuje logo webstránky. Sem môžeš namiesto textu v budúcnosti vložiť aj obrázok, ktorý logo reprezentuje.

<ul class="nav navbar-nav"> - obsahuje už konkrétne položky menu. V praxi najčastejšie môžeme zmeniť preddefinované zarovananie menu doľava na zarovanie doprava pomocou triedy .navbar-right. Rovnako ako .navbar-right je možné explicitne použiť aj triedu .navbar-left.

Práca so zoznamom

Zoznam položiek sa v HTML definuje dvoma spôsobmi.

Nečíslovaný zoznam

Nečíslovaný zoznam definuje tag <ul></ul>. Zoznam obsahuje položky, ktoré sú v tagoch <li></li>. Koľko tagov <li></li> máme, toľko bude mať zoznam položiek.

<ul>
  <li>Položka 1</li>
  <li>Položka 2</li>
  <li>Položka 3</li>
</ul>

Výsledok vyzerá takto:

  • Položka 1
  • Položka 2
  • Položka 3

Číslovaný zoznam

Číslovaný zoznam definuje tag <ol></ol>. Zoznam obsahuje položky, ktoré sú v tagoch <li></li>. Koľko tagov <li></li> máme, toľko bude mať zoznam položiek.

<ol>
  <li>Položka 1</li>
  <li>Položka 2</li>
  <li>Položka 3</li>
</ol>

Výsledok vyzerá takto:

  1. Položka 1
  2. Položka 2
  3. Položka 3

Informácia: Na menu webstránok sa pozeráme ako na položky nečíslovaného zoznamu. Preto sa nachádzajú aj v našom príklade v <ul></ul> tagu. Vo worde tiež väčšinou položky menu štruktúruješ ako zoznam, buď v odrážkach alebo číslami. :)

Úloha

  1. Skopíruj celý kód zo začiatku tutoriálu k tejto lekcii
  2. Vlož ho na webstránku v súbore index.html hneď za <body> element.
  3. Vyplň názov namiesto loga v sekcii <div class="navbar-brand"></div>.
  4. Uprav názvy položiek menu, tak aby odpovedali tvojej štruktúre webstránky (ak je iná ako v tutoriáli).
  5. Skús zmeniť triedu .navbar-default na .navbar-inverse. Zmenila sa farba menu na čiernu?
  6. Skús do tagu <ul class="nav navbar-nav"></ul> pridať triedu .navbar-left.
  7. Pridaj do druhého <ul class="nav navbar-nav"></ul> triedu .navbar-right. Presunul sa kontakt napravo?

Fotka užívateľa

Veľkosť obrázku je možné upraviť v HTML alebo v CSS. Zmena veľkosti sa nastaví priamo v <img /> tagu pomocou width a height. Ak obrázok nemáš pripravený, stiahni si obrázok avataru a ulož ho do priečinka img v priečinku htmlkurz2016.

<img src="img/user-photo.png" class="img-circle" width=30 height=30 />

Upozornenie: Aby sa obrázok zobrazil správne, je dôležité aby bol v správnom pomere (štvorec). Ikonky: Namiesto obrázku sa zvyknú často používať ikonky. Ak nejaké hľadáš, mnoho voľne dostupných je ich na stránke icons8 alebo iconfinder.

V tejto chvíli naše menu vyzerá takto:

<div class="navbar-wrapper">
    <nav class="navbar navbar-default navbar-static-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Sveťa Margetová</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav navbar-left">
            <li><a href="#">O mne</a></li>
            <li><a href="#">Záujmy</a></li>
            <li><a href="#news">Aktualita týždňa</a></li>
          </ul>
          <ul class="nav navbar-nav navbar-right">
            <li><a href="#contact"><img src="img/user-photo.png" class="img-circle" width=30 height=30 />Napíšte mi</a></li>
          </ul>
        </div>
      </div>
    </nav>
</div>