Webová šablona 7

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 sedmá – responzivní design

Responzivní design

Jen pro pořádek. Responzivním designem je myšlena úprava webové šablony pro různá rozlišení obrazovek.

Naše šablona je z velké části responzivní, ale ne všude. Dalším a asi už i posledním krokem bude podívat se na to, jak šablonu upravit pro mobilní a jiná zařízení.

Velice pěkný nástroj pro práci s responzivní šablonou je v prohlížeči Mozilla (Nástroje – Vývoj webu – Responzivní design). Nástroj se dá spustit klávesovou zkratkou Ctrl+Shift+M.

Pokud budeme měnit velikost okna v naší šabloně (tahem z pravé strany okna nástroje), zjistíme, že problém máme až od rozlišení 1120px na šířku.

Vyřešíme to luxusně díky css dotazu na media. Jednoduše ve style.css pokračujeme a vložíme toto:

@media (max-width: 1120px) {
  .sekce .nadpis {
    top: 40px;
    left:  30%;
  } 
}

nahled-28

Díky této srandě máme klid až do rozlišení zhruba 840px, kdy se nám může začít překrývat text.

V této chvíli je ideální vše vyřešit tak, abychom měli klid až do cílového rozlišení 360px na šířku. Což je dle nástroje pro vývojáře od Google optimální šířka pro mobilní zařízení a tedy i náš cíl.

Nejlepší je nastavit procentuální délku a relativní umístění, tak, aby se vše měnil samo. Další možností, je neustále posouvat a centrovat elementy podle toho jak se kde střetávají tím, že přidáváme další a další dotazy na media.

Toto řešení není úplně nejhorší, někdy i nezbytné, ale zdlouhavé. V tomto případě se mu naštěstí můžeme vyhnout, ale bude třeba přenastavit většinu elementů v obsahu a hlavičce webu.

Začneme postupně:

@media (max-width: 850px) {
  img#poutac {
    position: absolute;
    top: 0;
    left: 0px;                
  }
  
}

nahled-31

Pokud to budeme brát odshora dolů. První je na řadě poutač. Sice se zdá, že nám nevadí, ale ve skutečnosti je třeba pro vertikální obtékání v tomto případě upřednostnit text nad obrázky. Poutač měl do teď výchozí relativní pozici a obsah pod ním se přibližoval k záhlaví dle toho, jak se poutač zmenšoval, až obsah překryl absolutní nadpis.

Dalším krokem, jak jsem napověděl je nastavení nadpisu na relativní pozici.

Následující příkazy vložit do media:

@media (max-width: 850px) {
  img#poutac {
    position: absolute;
    top: 0;
    left: 0px;                
  }
  #nadpis {
    position: relative;
    top: 0;
    left: 0;
    margin: auto; 
    margin-top: 80px;
  }       
  #nadpis h1, #nadpis p {
    margin-left: 20px;
  }
  #nadpis p, .nadpis p {
    max-width: 500px;
    width: 90%;
  }
  #obsah {
    padding: 20px 0;
    float: left;
    width: 100%;
  }
}

nahled-29

Ve skutečnosti, jak vám určitě po zhlédnutí víše uvedeného kódu došlo, tak problémů bylo více.

Nadpis bylo třeba po odsadit o 80px a hlavně u obsahu nastavit obtékání a tedy i délka. Zapomenout se nesmělo ani na odstavce a nadpisy druhé úrovně.
Když tak můžete postupně zadávat příkazy a koukat co se změnilo.

Hotoví však stále nejsme.
Zápatí se nějak nekamarádí s obtékajícím obsahem, takže jej také musíme nechat obtékat.
Doplníme do media a nastavíme okraje i obtékání:

  }          
  #obsah {
    padding: 20px 0;
    float: left;
    width: 100%;
  } 
  #zapati {
    float: left;
    width: 90%;
    padding: 20px 0;
    margin: 0 10px;
  }
}

Zápatí už se kamarádí s obsahem, ale jednotlivé sekce nikoli. Tak se musíme podívat ještě na sekce v obsahu a rovnou si je připravíme i pro ta nejnižší rozlišení.

  #zapati {
    float: left;
    width: 90%;
    padding: 20px 0;
    margin: 0 10px;
  }           
  .sekce .nadpis {
    top: 40px;
    left:  5%;
  }                    
  .sekce img {
    min-width: 350px; 
  }
}

30

Zdánlivě hotovo.

Problémy však můžou nastat, pokud budeme měnit délky obsahů. Dále si můžete hrát i s velikostí nadpisů a dalším nastavením. Oboje nechám už na vás.

Jen na závěr nezapomenout na jednu důležitou maličkost. Aby stránky opravdu fungovali i v mobilních zařízeních tak, jak jsme nastavili, je třeba nastavit viewport. Což se dělá v index.html v hlavičce head.

Jednoduše doplníte toto:

  <head>    
    <meta charset="utf-8">
    <title>Moje šablona</title>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <link rel="stylesheet" href="styly/style.css">
  </head>

To je ode mě vše. Pokud jakékoli dotazy, tak piště. Pokusím se odpovědět.
Děkuji za vaši přízeň.


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

obr-1
obr-2
obr-3
obr-4

Napsat komentář

Vaše emailová 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>