Znakové entity

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 &nbsp; (z angl. non-breaking space).

Příklady entit
Znak Entita
pevná mezera &nbsp;
< &lt;
> &gt;
& &amp;
" &quot;
­­ &shy;
± &plusmn;
× &times;
® &reg;
© &copy;
&euro;
» &raquo;
« &laquo;

Použitelných entit je mnohem více.

Obecná diakritika pro Latin 1
Symbolický zápis Co je nad písmenem ? Příklad Zobrazení příkladu
&?tilde; vlnovka  &ntilde; ñ
&?circ; stříška &ecirc;  ê
&?uml; dvě tečky  &auml; ä
&?acute; čárka  &iacute; í
&?grave; opačná čárka &agrave; à
&?ring; kolečko, kroužek &aring; å
&?caron; háček &scaron; š
&?slash přeškrtnuté písmeno &oslash; ø

Nahrazování českých znaků entitami je nepraktické a působí chyby. České znaky je mnohem lepší normálně vpisovat do HTML kódu.

Číselný zápis entity

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 &#0190; je ¾. Takový znak se zobrazí vždy stejně bez ohledu na kódování dokumentu (je na to nějaká iso norma).

Tabulka čísel entit

Entita & v URL v odkazech

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&amp;b=0">odkaz</a>

Prohlížeč si potom zápis správně vyhodnotí tak, že si v mysli převede entitu &amp; 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 &region pochopil jako &reg;ion, tedy ®ion. Prohlížeče od Internet Exploreru 6 už tuto chybu nedělají.

 

Reklama

www.webhosting-c4.cz, extra rychlý SSD webhosting s doménou v ceně
o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

HTML tagy Abecedně Příklady HTML tahák

Jak psát web píše Yuhů, Dušan Janovský. Kontakt.