Zkrácené HTML zápisy

2006-06-16 22:57 napsal Lukáš Havrlant

Předpokládám, že každý ví, jak v HTML zapsat nějaký libovolný element. V zásadě máme dvě možnosti. Úvodní značku – <znacka> a ukončovací značku – </znacka>. Druhá možnost je pak zapsání pouze úvodní značky, protože ukončovací značka neexistuje či nemusí být zapsána. Tyto dvě metody jsou bezesporu nejznámější a jiné se prakticky nepoužívají. Nicméně HTML zná i další způsoby, jak zapsat element.

Prvním z nich je NET zápis, se kterým jste už tady na webu nejednou setkali, takže jen krátce. Úvodní značku nemusí ukončit závorka větší než „>“, ale můžeme ho ukončit lomítkem. Tedy takto: <znacka/. Tímto je značka uzavřena. Celý element potom uzavřeme opět pouhým lomítkem – /. Element by tedy vypadal takto:

<znacka/obsah elementu/

Více na toto téma třeba u jozoba.

To ale není všechno. HTML zná ještě jiné způsoby. Další z nich se nazývá „Empty End Tag“. Už z názvu trochu vyplývá, jak se vše bude odehrávat. Takže mějme běžnou HTML značku: <strong>. Nějaký její obsah a celý element namísto </strong> ukončete pouze </>. Zápis bude validní. „Značka“ </> ukončí vždy aktuální element, tedy ten, který byl otevřen nejpozději. Pokud byste používali pouze tento způsob zápisu, několik věcí by se značně zjednodušilo – prakticky nikdy by nedošlo k překřížení tagů, protože by se vždy ukončil ten aktuální. A také by se snížila velikost dokumentu. Faktem ale je, že by HTML zápis by značně nepřehledný :-). Snad by pomohl nějaký dobrý editor, který by s tímto eventuálně uměl pracovat.

Další způsob se jmenuje „closed Start Tag“. Je to takový milý nevinný zápis. Spočívá v tom, že úvodní značku neukončíte závorkou větší než „>“, ale místo toho tam narvete další značku, takže tu původní značku ukončíte závorkou menší než „<“. Asi bude lepší ukázka:

<strong<a href="#">odkaz</a></strong>

Tento zápis, ač vypadá tak nějak povadle, je správný a validní. Ve specifikaci jsem našel zmíňku ještě o jednom způsobu a sice „Empty Start Tag“, ale ten jsem prostě nepochopil jak by měl fungovat, pardon…

Tak a teď přijde to nejdůležitější. Podporují tyto zápisy prohlížeče? Inu, můžete si to vyzkoušet sami na testovací stránce na W3C. Patrně zjistíte, že to moc nefunguje…

Ale přeci jen neházejme flitnu do žita. Najdou se i prohlížeče, které to zvládají. Například takový Lynx zvládá prakticky všechny zde popisované způsoby. Kde jiné prohlížeče končí, tam Lynx teprve začíná ;-). Další věc, kterou už zvládá více prohlížečů je „closed Start Tag“. Ale i to má bohužel jisté omezení. Pokud použijete tento zápis a nebudete mít ve značce atribut, zvládne to pouze Firefox. Takže pokud byste někdy potřebovali mít zvýrazněný text pouze ve Firefoxu ale nikde jinde, můžete zkusit něco takového:

<strong<span></span>Zvýrazněný text ve FF</strong>

Pokud byste použili nějaký atribut, zvládli by to již všechny prohlížeče (tedy i Opera a MSIE).

<strong id="blbost"<span></span>Zvýrazněný text všude</strong>

Ale celé je to blbost a jen to prosím nepoužívejte někde v praxi… Uvádím to zde jen pro zajímavost.

Tak a máme tady update, Dero kápl na „Empty Start Tag“ a poslal link na stránku, kde je to hezky vysvětleno. Zkráceně to tedy funguje tak, že parser domýšlí volitelné značky podle toho, kde se právě nachází a jaká volitelná značka se nachází před tím. Je jasné, že v seznamu <ul> může být pouze <li>, takže zde můžeme využít „Empty Start Tag“:

<ul>
<li>první položka
<>druhá položka
<>třetí položka
</ul>

Parseru pak dojde, že ty prázdně závorky znamenají vlastně <li>.

Linkuj.cz!

Komentáře

17. June 2006, 23:16

To je přesně ta správná syntaxe pro šílené blogy šílených kodérů.. :-) Zkrácené html rulez!

17. June 2006, 23:31

Prakticky díky tvým článkům jsem přešel z XHTML (kde nebyl důvod ho použít) na HTML. Pokud se ale neurazíš, tohle používat nebudu :)

Jinak si myslím, že Empty Start tag funguje nějak takto: strong kurzíva /em /strong

a počáteční tag kurzívy si prohlížeč domyslí.

18. June 2006, 00:07

Marty

Pokud se ale neurazíš, tohle používat nebudu :)

Já to také nikomu neradím používat :-). Přece jenom Lynx zase tak velké zastoupení nemá…

Jinak si myslím, že Empty Start tag funguje nějak takto

Už jsem provedl update.

18. June 2006, 09:52

Pokud by se měly používat takovéto konstrukce, těžko by se HTML generovalo z XML dokumentů a bylo by opravdu nepřehledné.

# SuE
18. June 2006, 11:22

uff, tak tohle je moc i na nás z Chaos sanctuary, skutečně ďábelské :-)

18. June 2006, 11:57

Vždyť z toho mohou vzniknout takové krásné zápisy… :-)

18. June 2006, 12:28

To jsou ale pěkné šílenosti… O důvod více používat XHTML.

# mzk
18. June 2006, 12:35

No hrůza :-) to bych nechtěl takový kód

18. June 2006, 13:07

Jedná se poté o skutečně validní XML dokument? Mě se to zdá nějaké divné ;)

18. June 2006, 14:00

Petr

Jedná se poté o skutečně validní XML dokument?

Ne, ony zápisy jsou povolené pouze v HTML, v XML toto pochopitelně nefunguje. V HTML to skutečně validní je.

Pachollini

On tě to taky nikdo nenutí používat :-).

18. June 2006, 14:35

Je to zajímavé a rozhodně užitečné, znát to teoreticky, ale do praxe bych to raději nemíchal :-)

18. June 2006, 15:54

Napadlo ma urobiť si web, ktorý by využíval všetky možné SGML konštrukcie, CSS3 a iné srandy. To by bola krása. :o)))

19. June 2006, 00:57

Dobrý žertík, jen se bohužel obávám, že pár kodérů začátečníků to začne hromadně používat argumentujíce odkazem na tento příspěvek.

Ale doufám, že se mýlím.

P.S.: Jinak fakt zajímaný postřeh.

# VM
20. June 2006, 08:37

Je to zajímavé a rzhodně NEužitečné…

21. June 2006, 17:46

Už zas? Já tě! Jdeš do Brna?

30. June 2006, 20:08

Určite nevšedné informácie, no ja mám ešte z Pascalu zažité písať kód tak, aby som sa v ňom vyznal aj po dvoch rokoch (keď Pán Boh dá).

# andrej
14. July 2006, 13:40

Je jasné, že v seznamu může být pouze , takže zde můžeme využít „Empty Start Tag“

nie nieje to az tak jasne moze v nom byt aj OL alebo to moze byt nieco vnutri toho LI nadnim kedze nieje uzavrety :p

takze toto pouzivat fakt len v jednoduchom liste

14. July 2006, 18:04

andrej

Ne-e, v seznamu může být pouze li, další seznam totiž může být vložen zase pouze do li ;-).

# design
18. July 2006, 09:10

hm nevím, ale připadá mi že po tovjich kecech o webdesignu, jsi stvořil také nepěkné stránky. Když jsem tu vlez, připadalo mi to jako bych jse zamotal do babiččiných punčoch….brrrrrr hnus…sory, ale musel jsem to řect…

18. July 2006, 10:11

Bože kdy já mluvil něco o webdesignu…? :-)

# design
20. July 2006, 19:51

Bože , o bože…..NA boha to svaluj, když ho neznáš… :)

20. July 2006, 19:54

Já nic na nikoho nesvaluji. Pouze se ptám, kde v tomto článku žvatlám o webdesignu. Zkrácené HTML zápisy ≠ webdesign.

# design
22. July 2006, 19:01

ono to umí nerovnici…jéééé…. NE jsem myslel na „havrlant.net/web­desig.html“. Design ti asi nic moc neíká. To co jsi tam popsal je sice pravdu, ale design babiččiných punčoch asi málo koho naláká..To že někomu vytvoříš stránky napsané správně sémanticky a validní, myslím asi uživatele nezajímá. Považuje jse to za samozřejmost. Zákazníka či uživatele zajímá spíše jak jeho web bude vypadat, a jaké bude mít funkce. Nemyslíš?

23. July 2006, 11:22

Ach táák.. To se pak bavíme ty o koze a já o voze. Jo, jinak máš pravdu, bohužel. Já nevím, asi tu stránku zruším a dám tak under construction (výsledek bude asi shodný se současným stavem), dokud se nenaučím něco, co by opravdu stálo za řeč a hlavně za nabídku..

Jinak tenhle design mi třeba přijde vtipný :o).

# design
24. July 2006, 01:27

Vtipný docela je no.. Jo a ještě jedna vítka. Nepoužívej porád stejný Tamplet na všechny weby. Je sice dobrej, ale ohraný. Strányk bych nerušil jen až když uděláš nový, tak nahradit. Jo a ještě jsem chtěl říct aby jsis to nebral osobně, mě design docela baví, boužel však neumím zatím uplatnit na webu. Týče jse hlavně CSS..

24. July 2006, 23:52

Nepoužívej porád stejný Tamplet na všechny weby

To se bohužel hodně lehko řekne, ale strašně těžko dělá, alespoň v mém případě. Navrhni něco ;-). Já se inovaci bránit nebudu.

Jinak já bych zase doporučil dávat pozor v hodinách češtiny… Pokud to tedy nebyly nějaké překlepy vzniklé v důsledku rychlého psaní.

# pa3k
22. October 2007, 11:01

Dobrý článok. Najväčšia sranda je, že kopec XML somrákov bude nadávať na HTML, že také niečo umožňuje spraviť :-) A pritom to čo píšes v článku im v tých ich coool ultramoderných XHTML weboch búra validitu, pretože posielajú XHTML ako mime text/html čím vznikajú presne tie chyby čo popisuješ (hlavne NET) :-) LOL.

Komentáře jsou uzavřeny