Pokud chcete v prohlížeči zobrazit text, prostě ho napíšete do kódu stránky. Ale některé znaky jsou chápány jako součást jazyka HTML, a tak by se normálně nezobrazily. Například ostré závorky < a > by v textu nešly zobrazit. Pro tento účel vznikly entity, které se vzápětí rozšířily o mnoho dalších znaků.
Znakové entity se zapisují jako sekvence znaků. Sekvence začíná znakem & a končí středníkem. Mezi nimi je krátký písmenkový zápis daného znaku.
Asi nejdůležitější entitou je pevná mezera. Představuje jediný způsob, jak na stránce zobrazit několik mezer po sobě (odhlédněme nyní od faktu, že dvě mezery za sebou jsou v typografii chybou). Zapisuje se jako (z angl. non-breaking space).
Znak | Entita |
---|---|
pevná mezera | |
< | < |
> | > |
& | & |
" | " |
| ­ |
± | ± |
× | × |
® | ® |
© | © |
€ | € |
» | » |
« | « |
Použitelných entit je mnohem více.
Symbolický zápis | Co je nad písmenem ? | Příklad | Zobrazení příkladu |
---|---|---|---|
&?tilde; | vlnovka | ñ | ñ |
&?circ; | stříška | ê | ê |
&?uml; | dvě tečky | ä | ä |
&?acute; | čárka | í | í |
&?grave; | opačná čárka | à | à |
&?ring; | kolečko, kroužek | å | å |
&?caron; | háček | š | š |
&?slash | přeškrtnuté písmeno | ø | ø |
Nahrazování českých znaků entitami je nepraktické a působí chyby. České znaky je mnohem lepší normálně vpisovat do HTML kódu.
V rámci zvoleného kódování je možné vkládat do HTML zdroje znaky podle čísla v ASCII tabulce. Dělá se to zápisem &#číslo;
Například ¾ je ¾. Takový znak se zobrazí vždy stejně bez ohledu na kódování dokumentu (je na to nějaká iso norma).
Občas chci odkázat na stránku, která v URL obsahuje znak & (amperand). To je docela častá situace, protože spousta adres má tak zvanou dynamickou adresu s parametry, které jsou znakem & oddělené. Správně bych ale znak & v zápisu adresy nesměl použit, protože znak & je v HTML vyhrazený pro začátek entity.
Dejme tomu, že mám smyšlenou adresu
http://example.com/stranka.php?a=1&b=0
Odkaz by se na ni normálně napsal jako
<a href="http://example.com/stranka.php?a=1&b=0">odkaz</a>
Jenomže přesně na tomhle bude validátor hulákat, protože vidí znak &, ale &b=0 není žádný zápis entity. Správně by se tedy tento odkaz měl zapsat jako
<a href="http://example.com/stranka.php?a=1&b=0">odkaz</a>
Prohlížeč si potom zápis správně vyhodnotí tak, že si v mysli převede entitu & na znak &. Psaní takových odkazů je trochu pakoška, protože málokdo má náladu na přepisování ampersandů, když odkazuje na stránku s dynamickou adresou. Takže vás doufám uklidní, že první rychlejší zápis je sice nevalidní, ale funguje.
V praxi dělala tahle věc problém jenom u starších prohlížečů, které si iniciativně domýšleli uzavírací středník a například adresa, která obsahovala parametry "section" nebo "region" byla zmršena, protože prohlížeč zápis ®ion pochopil jako ®ion, tedy ®ion. Prohlížeče od Internet Exploreru 6 už tuto chybu nedělají.
Jak psát web píše Yuhů, Dušan Janovský. Kontakt.