Vývoj jazyků HTML i CSS probíhá odlišně. Nejprve se nové značky a CSS vlastnosti nějakou dobu testují (roky). Když se osvědčí, prohlásí se za standard. Tento proces se sále opakuje.
Standardizaci a další rozvoj webu má na starosti mezinárodní sdružení W3C. Jeho současným ředitelem je “vynálezce” webu a jazyka HTML sir Tim Berners-Lee. W3C (World Wide Web Consortium) existuje od roku 1994 a jeho hlavním úkolem je dohlížet na vývoj internetových standardů. Před založením W3C totiž existovalo velké množství různých nestandardních procedur a postupů, které některé prohlížeče podporovaly a jiné nikoliv, což tvorbu webu velice stěžovalo. Smyslem W3C je tedy zajistit schopnost různých systémů a klientů vzájemně spolupracovat.
Jinými slovy: Stejný kód by se měl v jakémkoliv webovém prohlížeči zobrazit naprosto stejně. Dnes se to již postupně daří, ale před takovými 10 lety to bylo téměř nemožné. Noční můra webmastera.
W3C se skládá z několika stovek komerčních společností a akademických organizací, které platí za členství. Za tyto peníze W3C například vytvořilo standardy jazyků HTML, XML či CSS nebo třeba provozuje validátor, nástroj sloužící k rychlé kontrole, zda stránka odpovídá specifikacím. W3C se také zabývá přístupností webu.
Hypertext Markup Language
📌 Bez jazyka HTML by neexistoval web!
Minimální požadavky:
Rok | Událost |
---|---|
1989 | Tim Berners-Lee “vynalezl” WWW |
1991 | Tim Berners-Lee "vynalezl" HTML |
1993 | Dave Raggett vypracoval HTML+ |
1995 | HTML 2.0 |
1997 | HTML 3.2 |
1999 | HTML 4.01 |
2000 | XHTML 1.0 (eXtensible, dnes již v klinické smrti) |
2008 | První veřejný návrh HTML 5 |
2014 | HTML 5 https://www.w3schools.com/html/html5_intro.asp |
2016 | HTML 5.1 |
2017 | HTML 5.2 |
Všimněte si vývojovou “díru” mezi lety 1999 a 2014. Mezi verzemi 4 a 5 uplynulo neuvěřitelných 15 let!
HTML 5 je (zatím) poslední verze značkovacího jazyka pro tvorbu webových stránek. Asimiluje v sobě předchozí verzi HTML 4.01.
HTML bez ohledu verzí obsahuje celkem 124 značek. Z nich je 21 nových (HTML 5) a 12 zastaralých (prohlížeče je stále podporují, ale neměly by se již používat). My se potkáme přibližně s 52 značkami:
<!-->
, <!DOCTYPE>
, <a>
, <article>
, <audio>
, <b>
, <body>
, <br>
, <caption>
, <code>
, <div>
, <fieldset>
, <figcaption>
, <figure>
, <footer>
, <form>
, <h1>
, <h2>
, <h3>
, <h4>
, <h5>
, <h6>
, <head>
, <hr>
, <html>
, <i>
, <img>
, <input>
, <li>
, <link>
, <mark>
, <meta>
, <nav>
, <ol>
, <p>
, <picture>
, <pre>
, <q>
, <s>
, <select>
, <span>
, <style>
, <sub>
, <sup>
, <table>
, <tbody>
, <td>
, <th>
, <title>
, <tr>
, <ul>
a <video>
.
Zastaralé značky: <acronym>
, <applet>
, <basefont>
, <big>
, <center>
, <dir>
, <font>
, <frame>
, <frameset>
, <noframes>
, <strike>
a <tt>
. Sice stále fungují, ale nedoporučuje se je používat.
Jak se v těchto pojmech vyznat?
<h2 align="center">Nadpis</h2>
<p align="right">Odstavec</p>
<img src="./plaz.jpg" alt="Foto z dovolené" />
<h2>
, </h2>
, <p>
, </p>
a <img>
h2
, p
a img
(element p
obsahuje značky <p>
a </p>
).align
, alt
center
, right
, ./plaz.jpg
, Foto z dovolené
Některé atributy jsou “nenahraditelné” (src
, alt
), používání jiných (align
) je považováno za zastaralý způsob - jejich funkci převzaly kaskádové styly (text-align: right;
).
Příklad:
Chci vytvořit nadpis druhé úrovně.
<h2>Zde je text nadpisu</h2>
Nyní chci, aby tento nadpis byl červeným bezpatkovým písmem. Element h2
ale nemá potřebné atributy na obarvení textu (fakt nemá). Ten má ale element font
.
<h2>
<font face="arial" color="#ff0000">
Zde je text nadpisu
</font>
</h2>
Toto je zastaralý způsob. Dnes se toto řeší výhradně kaskádovými styly.
<style type="text/css">
h2 {
font-family: "Arial";
color: red;
}
</style>
<h2>Zde je text nadpisu</h2>
Oba dva způsoby vytvoří stejný výsledek. Přesto je mezi nimi podstatný rozdíl. Jaký?
Mějte na paměti:
Tato sada elementů před i za sebou odřádkuje. Proto se jim říká “blokové”.
Elementy h1
až h6
. Oproti např. Wordu, který má styl Název pro definování názvu dokumentu (zde stránky), nemá HTML alternativu. Nejčastěji se ve stejném významu používá element h1
. Ostatní nadpisy h2
, h3
a h4
se používají pro 3 hierarchické úrovně nadpisů. Nižší úrovně h5
a h6
se využívají zřídka.
Značka | Ve Wordu by to byl styl |
---|---|
<h1></h1> |
Název |
<h2></h2> |
Nadpis 1 |
<h3></h3> |
Nadpis 2 |
<h4></h4> |
Nadpis 3 |
<p></p>
- Vymezení odstavce. Možná vůbec nejpoužívanější značka. Po jeho konci prohlížeč automaticky zalomí řádek a udělá vertikální mezeru 1 řádek.<br>
- Zalomení řádky, takzvaný měkký enter. Nepárová značka. Text bude vždy začínat na novém řádku, ale není to nový odstavec. Správně by se měla zapisovat <br />
, ale je to jedno.<div></div>
- Div se překládá jako oddíl nebo kontejner. Zahrnuje v sobě libovolně velkou oblast textu včetně nadpisů, obrázků a tabulek. Nezřídka se celá stránka vyskytuje uvnitř jednoho elementu div
. Před a za oddílem se zalomí řádek. V tomto smyslu je div
velmi podobný odstavci p
. Na rozdíl od odstavce ale div
nedělá před a za sebou vizuální mezery. Jeho hlavní význam je ve spojení s CSS.<hr>
- Vodorovná čára (horizontal rule). Nepárová značka. Zobrazí stínovanou šedou čáru přes celou šířku stránky. Správně by se měla zapisovat <hr />
, ale je to jedno.<pre></pre>
- předformátovaný text. Ideálně se hodí na výpis zdrojových kódů. Uvnitř elementu se totiž dá text formátovat pomocí mezer a konců řádků. Bohužel si neporadí s HTML značkami. Ty se i uvnitř elementu pre
dále vyhodnocují jako značky. Z tohoto důvodu se znaky <
a >
se musí nahradit jejich entitami <
a >
. Tím se značka “rozbije”. Ukázka:<pre>
<?php
$vek = $_GET['vek'];
if($vek<18;) {
echo 'Ještě nejsi plnoletý';
} else {
echo 'Vstup povolen';
}
?>
</pre>
Zobrazí:
<?php
$vek = $_GET['vek'];
if($vek<18;) {
echo 'Ještě nejsi plnoletý';
} else {
echo 'Vstup povolen';
}
?>
Následující elementy na formátování textu jsou in-line, to znamená řádkové. Nezalamují za sebou řádek (na rozdíl od blokových elementů výše).
<b></b>
a <strong></strong>
- tučné a silné zvýraznění (strong = silný, mocný). Prohlížeče pro ně používají tučné písmo, proto bývají zaměňovány. Je ale dobré uvědomit si klíčový rozdíl:
strong
= důležité => vyhledávače indexují,b
= tučné písmo => vyhledávače ignorují<i></i>
a <em></em>
- kurzíva a jemné zvýraznění (emphasis). Prohlížeče vykreslují kurzívou. Platí stejná pravidla jako u b
a strong
.
<code></code>
- neproporcionální písmo (tzv. strojopis). Záleží na prohlížeči, jaké má nastavené písmo pro tuto značku. Některé mají Courier New, jiné Consolas. Obecný název takového písma je Monospace.
<s></s>
- přeškrtnutí. Slouží k označení obsahu, který už je zastaralý nebo není relevantní.
<sub></sub>
- dolní index (z angl. subscript). Např. O2
<sup></sup>
- horní index (z angl. superscript). Např. x2
<mark></mark>
- Zvýraznění textu žlutým podbarvením. Barvu lze změnit kaskádovými styly.
Ačkoliv existuje i element pro podtržené písmo, záměrně ho zde neuvádím.
Slouží k zápisu speciálních znaků pomocí entit slovně nebo číslem znaku v ASCII tabulce:
<p>© 2019</p>
<p>© 2019</p>
V obou případech se vypíše: © 2019
Entit je mnoho. Z těch důležitých například:
kódem | číselně | význam |
---|---|---|
|
  |
tvrdá “nezlomitelná” mezera u lesa nebo 12 cm |
× |
× |
křížek × jako symbol pro násobení |
– |
– |
pomlčka – (spojovník je kratší - ). Existuje i — — |
< |
< |
znak < |
> |
> |
znak > |
° |
° |
symbol stupně ° |
· |
S |
Symbol tečky jako symbolu násobení · |
Není nutné si je všechny pamatovat. V Notepadu++ i PSPadu je k dispozici tabulka:
Cascading Style Sheets
📌 Bez jazyka HTML by neexistoval web!
📌 Bez CSS by byl web “uniformní” (všechny stránky by vypadaly stejně).
Původně byl jazyk HTML navržen tak, aby pomocí něj šlo snadno vyznačit jednotlivé logické části dokumentu. Nikdy přitom nebyl kladen důraz na přesnou definici výsledného vzhledu dokumentu. tato vlastnost vycházela z jeho smyslu použití.
Asi by se nic nezměnilo, kdyby se web v polovině 90. let minulého století nerozšířil i do komerční sféry. Tím vznikly požadavky na lepší kontrolu nad grafickým vzhledem dokumentu. Tyto požadavky byly uspokojeny přidáním atributů jako je align
a elementů jako font
a center
pro lepší ovládání vzhledu a formátování dokumentu (dnes tyto elementy a atributy patří na smetiště dějin).
Použití těchto technik mělo dva neblahé účinky. Za prvé se v HTML dokumentech místo jejich struktury začal vyznačovat spíše grafický vzhled. Druhá nevýhoda spočívala ve velké pracnosti a neflexibilitě tohoto řešení – způsob formátování se musel nastavit pracně pro jednotlivé elementy dokumentu. Rozsáhlejší změny v designu stránek pak byly velmi pracné, ne-li nemožné.
Obě tyto nevýhody odstraňují kaskádové styly. Pomocí stylu lze jednoduše definovat druh písma, způsob zarovnání, barvu a další vlastnosti elementu. Tato definice se pak použije jednotně v celém dokumentu. V dokumentu se již zaměříme pouze na strukturu informace (HTML) – grafický vzhled je definován stylem (CSS).
V jednom dokumentu může být použito několik stylů, které se navzájem doplňují. A naopak. Jeden styl může být použit společně s neomezeným počtem stránek, které tak získají jednotný vzhled. To je snad největší výhoda kaskádových stylů – společnou definici vzhledu mohou sdílet všechny stránky celého velkého webu.
Slovo kaskádové, jež mají CSS v názvu, značí jejich nejcharakterističtější vlastnost – jednotlivá pravidla kaskádových stylů se mohou vzájemně překrývat, což zvyšuje jejich efektivnost.
Vznik kaskádových stylů se datuje k roku 1997, jejich vytvoření iniciovala organizace W3C.
CSS 3 je zatím poslední verze kaskádových stylů, pomocí nichž určujeme vzhled webových stránek. Definujeme styly pro nadpisy, odstavce, odkazy či obrázky, ale i pro jednotlivé bloky webové stránky (layout). Podobně jako HTML, i CSS 3 asimiluje předchozí verze CSS 2 i CSS 1. Celkem existuje 208 CSS vlastností. Ukázka + živá ukázka: https://repl.it/@machac/css-ukazka:
h2 {
font-family: Arial, sans-serif; /*Nadpisům h2 nastav písmo Arial popř. bezpatkové*/
font-variant: small-caps; /*Také bude stylem Kapitálky*/
}
p {
text-align: justify; /* Odstavce <p> budou zarovnány do bloku */
}
a:hover {
color: red; /*Po najetí myší na odkaz se písmo obarví červeně...*/
text-decoration: none; /*...a odkaz také nebude podrtžený*/
}
Existují tři způsoby vložení CSS stylu do HTML dokumentu. Všechny tři způsoby lze navzájem kombinovat.
Vkládá přímo ke konkrétní značce. Nejčastěji se k tomu využívá neutrální značka <span></span>
:
<span style="color: blue;">Tento text bude modrý.</span>
<b style="color: red;">Tento tučný text bude červený.</b>
<p style="color: lime;">Tento celý odstavec bude mít zelené písmo.</p>
<p>černá černá <span style="color: gold;"> zlatá zlatá </span> černá černá</p>
Výsledek v prohlížeči:
Tento text bude modrý.
Tento tučný text bude červený.
Tento celý odstavec bude mít zelené písmo.
černá černá zlatá zlatá černá černá
Vkládá se do hlavičky stránky do sekce <style></style>
. Styl se tak vztahuje na jeden html dokument.
...
<style>
/* do sekce style přijdou definice CSS stylů */
/* toto je v CSS komentář */
</style>
</head>
...
Vkládá se do samostatného souboru s příponou .css
. V každém html dokumentu se na něj odkazujeme pomocí odkazu v hlavičce:
<link rel="stylesheet" href="styl.css">
Styl se tak vztahuje na všechny stránky, kde je odkaz uveden. Využívá principu, že web je složen z řady HTML stránek, které mají stejný vzhled. Díky tomu mají stránky jednotný vzhled a každá změna stylu v css souboru se projeví ve všech html stránkách, které jsou s tímto css souborem propojeny.
Bootstrap je jednoduchá a volně stažitelná sada nástrojů pro tvorbu webu a webových aplikací. Obsahuje návrhářské šablony založené na HTML a CSS, sloužící pro úpravu typografie, formulářů, tlačítek, navigace a dalších komponent rozhraní, stejně jako další volitelná rozšíření JavaScriptu.
Pro použití Bootstrapu jsou nutné základní znalosti HTML a CSS, interaktivní prvky jako jsou tlačítka, boxy, menu a další kompletně nastavené a graficky zpracované elementy je totiž možné vložit pouze pomocí HTML a CSS.
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div class="container">
...
</div>
</body>