Webová šablona 5

V několika kapitolách si ukážeme, jak si můžete vytvořit Vaši první jednoduchou, ale moderní webovou šablonu za použití jazyků html a css.

Kapitola pátá – Sub menu

Sub menu

Protože jsme použili v nadpisu řádkové prvky, kvůli vycentrování na střed. Může se zdát, že tvorba sub menu může být problém. Není.

Dokonce ani problém není to, že nepoužíváme seznamy pro menu.

Seznam <ul><li> se používají v menu opravdu hodně dlouho a přitom jsem pro to nenašel žádný důvod. Naopak si myslím, že ani seznam pro menu nebyl nikdy určen. Prakticky v každém prohlížeči musíte odstranit odrážky a vznikají i jiné problémy, třeba právě s tím, že už se rovnou používají pro menu blokové prvky a tudíž automaticky padá možnost centrování nadpisů na střed stránky či střed menu.

Naštěstí se to dá obejít css příkazem, který si v našem případě nezapisujme:

li {
  display: inline;
}

Příkaz udělá s blokového prvku, prvek řádkoví.
Na druhou stranu je využití seznamů pochopitelné. Je možné, že s tím počítají i někteří roboti. Dále se menu může brát jako seznam odkazů. Pak by využití elementů <ul><li> dávalo smysl. Porušením božího desatera to však není a navíc všichni víme jak to je s dodržováním desatera… pokud jej vůbec znáte.

Seznamy v menu jsou dle mého přežitek, ale občas je používám také. Chybu neudělá tak ani tak. Jen pokud jej nepoužijete, je to o něco jednodušší, navíc si o trochu zkrátíte kód a práci.

Vložení sub menu

Je třeba upravit menu v index.html a přidat tam toto:

      <div id="menu">
       <div id="tlacitka">                   <!-- smazat -->
        <a href="index.html">Úvod</a>
        <span class="sub-menu">
          <a href="#">Služby</a>
          <span>
            <a href="#">Služba</a>
            <a href="#">Služba</a>
            <a href="#">Služba</a>
            <a href="#">Služba</a>
          </span>
        </span>
        <a href="#">Historie</a>
        <a href="#">Fotogalerie</a>
        <a href="#">Kontakt</a>
      </div>                                 <!-- smazat -->
     </div>

Pokud jsme neudělali dříve, tak můžeme smazat <div id=“tlacitka“> už jej nepotřebujeme.

Proč <span>? Span je řádkový element a my stále pracujeme s řádky. Pokud se podíváme na výsledek, tak bez css bude všechno pěkně dál v řádku.

nahled-24

Zkuste si tam dát <div> místo <span> a uvidíte ten bordel. Také by to asi šlo přestylovat, ale bylo by to zbytečně složitější.

nahled-25

Pokud jste to zkoušeli tak dát párkrát zpět. Dalším krokem je css. Přidáme toto:

.sub-menu span {
  position: absolute;
  top: 32px;
  margin-left: -104px;
  width: 130px;
  visibility: hidden;                   /* skrýt menu */
}
.sub-menu:hover span {
  visibility: visible;                  /* odhalit menu */
}

nahled-26

Proč jsme použili v pozicování margin-left? Protože klasický left by se centroval od kraje elementu a menu je přes celou obrazovku. Stačilo by změnit velikost okna prohlížeče a hned by nám sub menu uteklo.

Pokud počítáte s tím, že po vás bude někdo měnit délku slov, je na místě dát za každý odkaz v submenu <br>. Pořád se pracuje s řádky a to i v sub menu. Jen jsme zmenšili šířku sub menu na 130px.

Taktéž, pokud je jiná délka slov v menu, bude i pozicování krapet jiné.

To je vše.


Soubory z lekce ke stažení: lekce-5.zip

obr-1
obr-2
obr-3

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>