HTML

Je to název formátu a pravidel, ve kterých se kód stránky píše.
Různé prohlížeče ? HTML dokážou jednotně přečíst a zobrazit vzhled stránky.

Vznikl už v roce 1990 (starý 29 let) ve Švýcarsku a stále se modernizuje a rozšiřuje.

 

Editor

Existuje spousta editorů pro tvorbu HTML kódu. Na hodinách používáme PSpad, který je možné stáhnout ze stránky PSpad.
Existuje ve verzích jako instalátor, nebo portable (stačí nakopírovat .zip a rozbalit, bez nutnosti instalace).

 

Struktura HTML

Základní struktura stránky je jednotně daná a je potřeba ji vždy dodržet.

Základním prvkem kódu stránky je tzv. TAG, ten se uzavírá do špičatých závorek:
<html>

Tagy rozlišujeme na:

  • párové – mají začátek a konec neboli otevírací a zavírací tag a mezi nimi je obsah
    <html>…</html>
  • nepárové – jsou samostatné, obsah definují atributy
    <img src=““>

Základní šablona stránky

  • Obsahuje definici že jde o HTML
  • Uvnitř obsahuje definici hlavičky (HEAD  - párový tag) a těla (BODY - párový tag)
    • Hlavička obsahuje neviditelné údaje, které ovlivňují nastavení stránky
    • Tělo obsahuje viditelný obsah stránky tady se umístí vše, co chceme zobrazit v prohlížeči

<html>
<head>
</head>
<body>
Tohle je můj první text.
</body>
</html>

 

Základní tagy

V hlavičce

  • TITLE – říká, jak se bude stránka jmenovat

V těle (obsahu)

  • H1 až H6  – nadpisy (heading)
  • P – odstavec (anglicky paragraph) – zobrazení do bloku, zabírá celou stránku
  • B – tučné písmo (bold) – zobrazení inline - neodřádkuje
  • I – ležaté písmo (italic) - inline
  • SPAN – označení textu – inline
  • DIV – neviditelný blok
  • BR – nepárový, odřádkování textu (break)
  • HR – nepárový, vodorovná čára (horizontal rule)

Více tagů např. na https://www.jakpsatweb.cz/html/


Atributy

Nastavují vlastnosti prvku (tagu) a uvádějí se vždy v prvním (oteváracím) tagu:
<p title="popis">text</p>

Například u obrázku (tag IMG) používáme atributy – src(zdroj obrázku), alt(alternativní text), title(popisek při najetí), rozměry(width, height).

Některé atributy jsou společné většině prvkům (align, width, title)

Atribut style – říká se mu inline style - slouží k nastavení vzhledu aktuálního prvku.

 

Tagy s atributy

  • IMG – nepárový, zobrazení obrázku (atributy src-zdroj, width, height, alt, title)
  • A – párový, odkaz (atributy href-adresa odkazu, target)

 

Styly

Existuje několik způsobů, jak styly používat, ukážeme si je později, základní stylování jednoho prvku je pomocí artributu style.

Zápis: název stylu: hodnota; (středník na konci slouží k oddělení více stylů v jednom atributu)

Např.: color: blue;

Zápis atributu inline stylu u prvku: style=“color:blue;“


 

Styly jako samostatný tag

Výhodou je možnost definovat jeden styl pro různé prvky stránky a zároveň jsou styly pohromadě.

Zpravidla v hlavičce (ale není nutnost) se definují jako:
<style>
</style>

Uvnitř se zapisují styly pro konkrétní prvky:

Prvek{
   styl:hodnota;
}

 

Styly v externím souboru


Obsah souboru je stejný jako u stylů v tagu style:

Prvek{
   styl:hodnota;
}

Připojení souboru se styly se provede tagem link v hlavičce:
<link rel="stylesheet" href="style.css">

 

Hlavní styly

  • Color
    • Pojmenované barvy (z AJ)
    • Barvy pomocí míchání RGB kódem: Color: RGB(255,0,0);
    • Barvy pomocí míchání HEXA kódem: Color: #FF0000;
  • Background-color
  • font-size
  • font-weight
  • text-align
  • padding
  • margin

Více na https://www.jakpsatweb.cz/css/css-vlastnosti-hodnoty-prehled.html


 

Adresování prvků v CSS souboru

Element

Můžeme adresovat element samostatně:
p{}

nebo podle struktury:
body h1 span{}

ID

Podle ID prvku…ID musí být jedinečné a je to atribut elementu:
<h1 id=“mainHeading“></h1>

Styl se pak zapisuje přez znak #
h1#mainHeading{}

nebo

#mainHeading{}

Třída (class)

Podle třídy prvku. Ta se může opakovat a jeden prvek může obsahovat libovolné množství tříd…oddělují se mezerou a zapisují se
<p class=“bold centered red“></p>

Styly se pak zapisují pomocí znaku tečky
p.bold{
  font-weight:bold;
}

.red{
  color: red;
}

 

Tabulky v HTML

Tabulky v HTML mají specifickou strukturu tagů:

  • Tabulka (TABLE)
  • Hlavička a tělo (THEAD, TBODY) – nepovinné
  • Řádek (TR)
  • Buňka (TH/TD) – TH se používá pro buňky například v hlavičce, TD pro obyčejné buňky

Příklad jednoduché tabulky s jedním řádkem a jednou buňkou:
<table>
  <tbody>
    <tr>
      <td>
        <p>obsah</p>
      </td>
    </tr>
  </tbody>
</table>

 

  • Vytvořme tabulku se 3 řádky a v každé z nich 3 buňky (obsah je libovolný). První řádek bude pomocí TH a bude styly nastavený tučné, modré a ležaté písmo. Poslední sloupec bude ležatým písmem (třída).

<table>
  <tbody>
    <tr>
      <th>obsah</th>
      <th>obsah</th>
      <th class="italic">obsah</th>
    </tr>
    <tr>
      <td>obsah</td>
      <td>obsah</td>
      <td class="italic">obsah</td>
    </tr>
    <tr>
      <td>obsah</td>
      <td>obsah</td>
      <td class="italic">obsah</td>
    </tr>
  </tbody>
</table>

<style>
table th{
  font-style:italic; 
  color: blue;
}
.italic{
  font-style:italic;
}
</style>


 

Layout pomocí tabulky

Využívá se toho, že buňky tabulky, které nemají definovanou velikost, se automaticky dopočítávají.

Pomocí tabulek je možné umísťovat prvky na střed horizontálně i vertikálně. Když dáme tabulce výšku i šířku na 100%, zaplní nám celou stránku a sloupce se rovnoměrně dopočítají:

<table border="1" style="width:100%; height:100%;">

Buňkám uvnitř pak můžeme nastavit výšku a šířku:

<td style="width:50%;height:50%;">

Můžeme otestovat tak, že vložíme do prostřední buňky tabulky 3x3 nějaký obsah.

Jak zarovnat obsah buňky? Standardně se zarovnává vlevo na střed. Jiného zarovnání dosáhneme nastavením následujících stylů u buňky:
test-align: left|center|right|justify
vertical-align:top|middle|botton

 

  • Zkusme si vytvořit tabulku 3x3 s vyplněním celé stránky a nastavte buňku s obsahem na 50% šířky a výšky, prostřední obsahové buňce nastavme barevné pozadí, aby byla vidět a odstraňte rámeček tabulky

<table border="0" style="width:100%; height:100%;">
  <tbody>
    <tr>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td></td>
      <td style="width:50%;height:50%;vertical-align:top;background:#ccc;">
        <h1>Nadpis</h1>
        <p>Text obsahu</p>
      </td>
      <td></td>
    </tr>
    <tr>
      <td></td>
      <td></td>
      <td></td>
    </tr>
  </tbody>
</table>

 

  • Pomocí tabulkového layoutu, upravme stránku tak, abychom, vytvořili sloupec o šířce 980px po celé výšce stránky

<table border="0" style="width:100%; height:100%;">
  <tbody>
      <td></td>
      <td style="width:980px;;vertical-align:top;background:#ccc;">
        <h1>Nadpis</h1>
        <p>Text obsahu</p>
      </td>
      <td></td>
    </tr>
  </tbody>
</table>

 

  • Upravme stránku tak, aby sloupec zabíral 40%, ale nebyl na středu, aby napravo bylo 2x více místa.

<table border="0" style="width:100%; height:100%;">
  <tbody>
      <td style="width:20%"></td>
      <td style="width:40%;;vertical-align:top;background:#ccc;">
        <h1>Nadpis</h1>
        <p>Text obsahu</p>
      </td>
      <td style="width:40%"></td>
    </tr>

  </tbody>
</table>


 

Seznamy

Známe 2 typy seznamů

  • Nečíslovaný - tag <ul>
  • Číslovaný - tag <ol>

Jednotlivé položky seznamu se uzavírají ro parového tagul <li> (list item)

Nečíslovaný seznam o 3 položkách je tedy:

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

Menu pomocí seznamu

  • Do seznamu umístěme odkazy s href=“#“
  • Přidejme seznamu třídu „menu“
  • Nastylujme podle zadání – všimněte si značek :hover a :active a zkuste přijít na to, k čemu jsou

HTML
<ul class="menu">
   <li><a href="#">Položka 1</a></li>
   <li><a href="#">Položka 2</a></li>
   <li><a href="#">Položka 3</a></li>
</ul>

CSS
ul.menu{
list-style: none;
padding: 0;
margin: 0;
}
ul.menu li{
font-weight: bold;
display: inline;
}
ul.menu li a{
padding: 10px 15px;
color: #fff;
font-size: 18px;
background: #0033FF;
text-decoration: none;
}
ul.menu li a:hover{
color: #000;
background: #00FF33;
}
ul.menu li a:active{
color: #000;
background: #00FFFF;
}

Layout pomocí prvku DIV

Tag DIV je blokový párový tag, který vytváří neviditelné místo na stránce, které můžeme stylovat. Využívá se především při rozvržení stránky.

Hlavní prostor stránky

Označuje se také jako wrapper (div se třídou 'wrapper') a vytváří obalení hlavní obsahové části, podobně jako v předchozích hodinách layout pomocí tabulky.

K tomu se využívají následující CSS styly:
.wrapper{
    width:100%; //stránka bude velká max jako okno prohlížeče
    max-width:980px; //maximální šířka obsahové oblasti
    margin: 0 auto; // pomocí margin:auto se vycentruje
}

 

Margin, padding

Margin (vnější odsazení) i padding (vnitřní odsazení) můžeme zapisovat různými způsoby:

  • Margin: 10px 20px 10px 20px; //každá strana zvlášť
  • Margin: 10px 20px; //horní a spodní + levá a pravá
  • Margin: 10px; //všechny strany stejné

Komentáře

Používají se na vložení části kódu, která nemá být na webu vidět.

HTML
Komentáře se vkládají mezi znaky <!-- a -->

CSS
Slouží ke vložení poznámek do css kódu, ale nemá vliv na kód samotný

  • Řádkové – vše za znaky // je komentář
  • Víceřádkové – vše mezi znaky /* a */ je komentář

 

Sloupce stránky

Pokud chceme mít vedle sebe více bloků, které vytvoří více sloupců, existuje více možností, jak toho dosáhnout.

Float

Nejstarší způsob.

Když nastavíme prvku float:left|right|none, bude jakoby plavat po stránce a více blokových prvků se bude řadit vedle sebe, dokud bude místo, a když už nebude, budou pokračovat na dalším řádku.

Floatovat jde různé bloky, ale většinou se float řeší na DIV bloku a tím se zarovnává i obsah DIVu.

  • Vytvořme ve stránce 3 sloupce vedle sebe 20%, 40% a 20%, vysoké 300px. Nastavte jim barevné pozadí, aby bylo vidět, kde jsou.

HTML
    <div class="col"></div>
    <div class="col col-40"></div>
    <div class="col"></div>

CSS
div.col{
   width: 20%;
   background: #ddd;
   height: 300px;
   margin:10px;
   float: left;
}
div.col.col-40{
   width: 40%;
}

Pokud chceme floatování zrušit, použije se float:none;

 
Clear

Pokud chceme, aby prvek nepokračoval na stejném řádku, ale začínal na novém, použije se vlastnost clear:left|right|both.

Vlastnost clear udává, na které straně nemá prvek pokračovat v roku float, ale má být tato strana zase u okraje.


Display: inline-block


Využívá se toho, že se blokový prvek bude chovat jako řádkový, ale nechá si vlastnosti blokového, takže je možné nastavovat například odsazení, ale prvky se budou řadit za sebe na řádku, dokud bude místo.

  • Vytvořme odstavec s dlouhým textem a do něj vložme za sebe 2 prvky <span> do kterých vepišmě text.
  • Přidejme styly, kterými nastavíme žluté pozadí pozadí pro spany a 1px černý okraj
  • Nastavme velikost 100px x 100px a margin 10px;
  • Otestujeme různé chování při nastavení dsplay: inline|block|inline-block

 

  • Zkusme předchozí zadání pomocí display: inline-block
    • Vytvořme ve stránce 3 sloupce vedle sebe 20%, 40% a 20%, vysoké 300px. Nastavme jim barevné pozadí, aby bylo vidět, kde jsou a 10px margin.

Display: flex

Nejnovější způsob a zároveň nejpokročilejší. Prvky je možné do šířky stránky rozprostřít, definovat kolik se jich má ve stránce zobrazit, jak se mají zarovnat vertikálně i horizontálně a počítá i se zobrazením pro menší zařízení – mobily, tablety

Krásně popsáno na: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

  • Vytvořme div se třídou flex a do něj vložte 3 divy.
  • Do každého divu dejte jiné množství odstavců s textem
  • Nastavte podbarvení vnitřních divů, pčípadně jejich šířku na 20%
  • Vyzkoušejte si různé nastavení atributů obalovacího DIVu s třídou flex:
    • justify-content – flex-start, center, space-between, space-around
    • align-items – flex-start, center, stratch

 

Frameworky

Existuje řada frameworků, které usnadňují práci a řeší spoustu HTML kódu za kodéra.

Ty lze buďto stáhnout, nebo na ně z našeho dokumentu pouze odkazovat a pak využívat jejich funkce. Konkrétní implementace je vždy na stránce frameworku popsána, stejně jako způsob použití jednotlivých komponent.

Framework můžeme využít například pro:

  • Vytvoření kontejneru (ukazovali jsme si, co to je)
  • Použití gridu (rozdělení stránky do 12 sloupců – automaticky, vynucená šířka)
  • Stylování tabulky
  • Barevná upozornění
  • Formuláře a tlačítka
  • Vytvoření a nastylování navigace webu

 

Máme stránky a co dál?

Aby byly stránky veřejně dostupné, musíme je umístit na internet. To můžeme udělat 2 způsoby:

Jako placené stránky s vlastní doménou

U některého z poskytovatelů je nutné objednat doménu a hosting.

 
Doména

Je vlastně adresa, pod kterou se stránky zobrazují.
Standardně se kupují domény 2. řádu, ale existují poskytovatelé domén 3. řádu zdarma.

 

Hosting

Je server, na kterém jsou soubory stránek umístěné.

Existuje velká řada poskytovatelů hostingů, stačí do vyhledávače zadat klíčová slova „hosting“ nebo „doména“. Existují různé akce pro doménu zdarma k hostingu, nebo hosting zdarma k doméně.

Doména i hosting zdarma

I to existuje a to na například na webu www.webzdarma.cz, kde je možné po registraci provozovat stránky pod doménou 3. řádu s vloženými reklamami, ale mimo tato omezení jsou stránky úplně zadarmo.

Máme doménu a hosting, co dál?

Soubory je potřeba na server hostingu nahrát.
K tomu se používá tzv. protokol FTP – file transfer protokol. Ten zajišťuje možnost kopírování souborů mezi serverem hostingu a vaším PC.

K tomu, abychom se k FTP mohli připojit, potřebujeme:

  • Adresu serveru (venuse.server.webzdarma.cz)
  • Uživatelské jméno (hubicka.wz.cz)
  • Heslo (SuperHeslo81)

Tyto informace dostaneme po založení hostingu.

Existuje řada FTP klientů (Filezillla, TotalCommander, atd), případně je přímo v PSpadu integrována možnost se k FTP připojit. Některé hostingy umožňují soubory nahrávat přímo v administraci přez webové rozhraní.

Postup na nastavení FTP v PSPadu

1) V PSPadu v levé části klikněte na ikonku FTP a poté na první ikonku zásuvky (připojení)

2) Založte nové připojení

3) Zadejte přístup k FTP (viz výše)

4) Kliknetě na tlačítko připojit

Po připojení se v levém panelu objeví soubory ze serveru. Dvojkliknutím na soubor na serveru jej uprvujete. Poté stačí jen soubor uložit a ukládá se přímo na server a změna je ihned viditelná na adrese http://hubicka.wz.cz.