DTD uvedená na začátku WWW dokumentu je značka jazyka XML, která definuje typ značkovacího jazyka, který je použitý v následujícím dokumentu (např. HTML 4.01, XHTML 1.1, nebo HTML5). Jejím smyslem je zabránit formátování dokumentu podle nekompatibilní specifikace (pro kterou nebyl dokument sestaven).
Podrobnosti o DTD naleznete např. na:
- http://www.jakpsatweb.cz/doctype.html (před HTML5)
- http://www.sovavsiti.cz/c01043.html (před HTML5)
- http://www.wellstyled.com/html-doctype-and-browser-mode.html (před HTML5)
- http://www.kosek.cz/clanky/xml/xml-01.html (obecně)
nebo pro informace ekvivalentní s hlavičkami HTTP (není spolehlivé)
```html
<meta http-equiv="typ_info" content="obsah_info">
```
## Nejpoužívanější značky v HTML
| značka | význam | párová? |
|--------|--------|---------|
| html | celý dokument | ano |
| head | hlavička dokumentu | ano |
| title | titulek WWW stránky (v hlavičce) | ano |
| body | tělo dokumentu | ano |
| a | hypertextový odkaz | ano |
| h1 | nadpis nejvyšší úrovně (ex. 6 úrovní) | ano |
| p | odstavec | nepovinně |
| br | (!) konec řádku (řádkový zlom) | ne |
| em | zvýraznění textu | ano |
| strong | silné zvýraznění textu („tučné“) | ano |
| img | obrázek | ne |
| hr | vodorovná čára | ne |
| div | (!) oddíl (část dokumentu) | ano |
| span | (!) úsek textu | ano |
A dále značky pro tvorbu seznamů (`ul`, `ol` + `li`; `dl` + `dt`, `dd`), formulářů (viz [Formuláře](#31)) nebo tabulek (`table`, `tr`, `th`, `td`, ...).
---
## Nepodporované značky a atributy v HTML5
V HTML5 došlo k odstranění elementů (značek i atributů), které suplovaly funkci kaskádových stylů.
HTML5 nepodporuje např. značky: `basefont`, `dir`, `font`, `big`, `center`, `strike`, `tt`, `acronym`, `applet`, ...
HTML5 nepodporuje např. tyto atributy:
- `<body>`: `text`, `bgcolor`, `link`, `alink`, `vlink`, `background`
- `<hr>`: `align`, `noshade`, `size`, `width`
- `<a>`: `name` (využijte `id`)
- `<table>`: `cellspacing`, `cellpadding`
- „obecné“ atributy: `align`, `valign`, `border`, `width`, `height`, `bgcolor`, `hspace` a `vspace`
Podrobnosti najdete na https://www.w3schools.com/tags/default.asp
---
## Nové značky v HTML5
HTML5 zavádí nové značky pro přesnější popis obsahu dokumentu (sémantické značky nahrazující obecnou značku `div`):
- `header` – záhlaví stránky, resp. záhlaví části stránky
- `footer` – zápatí stránky, resp. zápatí části stránky
- `nav` – oblast s navigací (celé stránky, resp. její části)
- `section` – logická oblast stránky (např. jeden _slide_ této prezentace)
- `article` – článek nebo kompletní část obsahu
- `aside` – poznámka po straně (sekundární obsah spjatý s článkem!)
- `meter` – popisuje míru v rámci rozsahu (např. kolik peněz je na kontě sbírky)
- `progress` – zobrazení reálného časového průběhu vzhledem k cíli (např. kolik dat bylo zatím přeneseno na server)
Prohlížeče tyto značky podporují přibližně od roku 2015.
---
## Nové atributy v HTML5
HTML5 přidává atributy pro tvorbu uživatelsky přívětivých formulářů (autofocus, placeholder a contenteditable) a nové hodnoty atributu type značky input (email, url, search, range, tel, number, color, date, month, week, time, datetime-local).
HTML5 umožňuje uživateli používat vlastní datové atributy, které začínají předponou `data-` (validátor W3 je ignoruje). Lze je využít u všech značek a přistupuje se k nim JavaScriptem. Mají mnoho využití (např. zobrazení data a času v časovém pásmu uživatele; určení, zda se má formulář zpracovat AJAXem; přidání prezentační informace do struktury dokumentu, když to nelze udělat pomocí CSS – např. velikost JavaScriptem otevíraného okna s nápovědou).
Nové datové atributy (včetně `data-`) jsou podporované prohlížeči vydávanými po roce 2015. Pokud prohlížeč atributu nerozumí, ignoruje ho.
---
---
## Tvorba formulářů I
Formuláře slouží pro zadání dat (uživatelem), která pak budou nějakým způsobem zpracována (skriptem na straně klienta nebo serveru). Každý formulář je uveden v párové značce [`form`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form), jejíž atributy určují především to, jak se budou data odesílat na server (`method`) a který skript data zpracuje (`action`):
```html
<form action="nějaký URL" method="post">...</form>
```
__Poznámka:__ místo metody `post` lze využít `get` (vysvětlíme si později).
Uvnitř formuláře se definují jednotlivé prvky – podle typu informací, které má uživatel zadat (např. značky [`input`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input), [`select`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select) – viz dále).
Je vhodné využívat značky [`label`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label), [`legend`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend), [`fieldset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset) a [`optgroup`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup), aby se uživatelé ve formuláři lépe orientovali.
---
## Tvorba formulářů II
Prvky, které lze definovat uvnitř formuláře:
- „jednořádkový“ prvek formuláře [`input`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input) (nepárová značka) s různými typy: `text` pro zadání textu, `password` pro zadání hesla, `radio` pro volbu jediné z možností, `checkbox` pro „zaškrtávací políčko“, `submit` pro odeslání vyplněného formuláře, `file` pro odeslání souboru (+ spec. atribut u `form`!), `hidden` pro skrytý prvek a další typy z HTML5 (např. `email`)
- víceřádkový text [`textarea`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea) (párová značka)
- výběrový seznam („menu“) [`select`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select) (párová značka), jehož prvky se vkládají do nepovinně párových `option`
__Všechny prvky musí mít uveden atribut `name`, jinak je nelze zpracovat!__
Přehled značek naleznete např. na webu [w3schools](https://www.w3schools.com/html/html_forms.asp) nebo [JakPsatWeb](https://www.jakpsatweb.cz/html/formulare.html).
---
## Search Engine Optimization (SEO)
optimalizace stránky pro vyhledávače (Google, Seznam, apod.)
Základní zásady:
- používat výstižný titulek (`title`),
- používat značky `meta` pro defování popisu stránky, klíčových slov, informací pro vyhledávací roboty,
- _text_ stránky by měl být kvalitní, krátký, výstižný, strukturovaný, pravidelně aktualizovaný; kód musí být _validní_ a neměl by obsahovat zbytečné značky (tagy),
- _vzhled_ nastavit pomocí CSS (v externím souboru),
- používat přátelská URL (friendly URLs),
- využívat RSS kanál,
- využít zpětné odkazy – ale pozor na penalizaci ze strany vyhledávačů (komentářový spam, linkové farmy, ...)
---
## Search Engine Optimization (SEO) – knihy
- Linhart, Jan; Kubíček, Michal. 333 tipů a triků pro SEO. Brno: Computer Press, 2010.
- Kubíček, Michal. Velký průvodce SEO. Jak dosáhnout nejlepších pozic ve vyhledávačích. Brno: Computer Press, 2008.
- Couzin, Gradiva; Grappone, Jennifer. SEO – Search Engine Optimization: Optimalizace pro vyhledávače. Praha: ZONER Press, 2008.
- Smička, Radim. Optimalizace pro vyhledávače – SEO. Dubany: Jaroslava Smičková, 2004. Dostupné též na http://seo.jasminka.cz/.
- King, Andrew B. Zrychlete své WWW stránky. Praha: ZONER Press, 2004.