<P> je ekvivalentní <p> <Head>, <HEAD> a <head > jsou stejné značky < head > není značka (mezera za <)Některé značky jsou párové a po úvodní značce musí následovat uzavírací značka se stejným jménem, ale s vloženým znakem lomítko před jméno značky:
<HEAD>Toto je hlavička</HEAD>Párové značky vymezují typ části dokumentu. U mnoha párových značek je povoleno vypustit uzavírací značku, pokud lze rozpoznat konec vymezeného textu, například podle začátku další značky. Příkladem takových značek jsou <P>, <LI>, <DD>, <DT>, apod. Přesná pravidla, kdy je možno vypustit u párových značek ukončující značku, jsou uvedena v definici DTD jazyka HTML. Části textu vymezené párovými značkami se nesmí protínat:
<A HREF="dot.gif">Tento hypertextový <B>odkaz</A> je špatně</B>Značky mohou obsahovat atributy, které definují charakteristiku značky. Atributy jsou zadávány jménem a hodnotou atributu. U jména atributu se nerozlišuje mezi malými a velkými písmeny. Hodnotou atributu je řetězec. Řetězec hodnoty atributu je vymezen apostrofy nebo uvozovkami:
<IMG SRC="/images/work.gif" ALT='icon work in progress'>Tato značka IMG má dva atributy: SRC a ALT. Hodnotou atributu SRC je řetězec "/images/work.gif". Možnost vymezení hodnoty atributu apostrofy je definována ve standardu jazyka HTML, ale některé starší nástroje a prohlížeče to nemusí zvládat. Některé atributy mají omezenou množinu hodnot, mohou nabývat pouze hodnot z definovaného výčtu. Příkladem může být atribut ALIGN, který může nabývat hodnot "TOP", "MIDDLE" nebo "BOTTOM". Pokud obsahuje hodnota atributu pouze písmena, číslice, znaky tečku a mínus, pak nemusí být uzavřena v apostrofech nebo uvozovkách. Obě výše uvedené hodnoty atributů uvozovky nebo apostrofy vyžadují, protože obsahují jiné znaky (lomítko, mezeru). U atributů, jejichž hodnotou je jméno atributu, je povoleno vypustit také hodnotu atributu:
<IMG SRC="map.gif" ALT='clickable image' ISMAP>Uvedený atribut ISMAP má plný tvar ISMAP="ISMAP" (některé starší prohlížeče ovšem tomuto plnému tvaru nerozumí). Pokud má hodnota atributu nebo text mezi dvěma značkami obsahovat znak, který je použit pro zápis značek, je třeba použít znakového literálu:
< | má význam < |
> | má význam > |
" | má význam " |
& | má význam & |
<!> <!-- jeden komentář --> <!-- první komentář -- -- druhý komentář --> <!-- toto není -- správný komentář -->Poslední komentář v příkladu není správně zapsaným komentářem, protože neobsahuje párové dvojice znaků --. Speciální postavení má řetězec, který obsahuje za znaky <! jiné znaky než mínus nebo ukončující závorku. Takový řetězec je chápan jako příkaz systému SGML. Standard jazyka HTML definuje jediný příkaz DOCTYPE, kterým by měl začínat každý dokument v jazyce HTML:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN//">Tento příkaz definuje typ dokumentu v systému SGML odkazem na zaregistrovanou definici typu dokumentu (DTD) HTML verze 2.0. Za číslem verze jazyka (2.0) může následovat parametr STRICT, který deklaruje formálně striktnější zápis, a parametr LEVEL, který definuje použitou úroveň jazyka. Standard definuje dvě úrovně jazyka, úroveň 1, která neobsahuje zápis formulářů, a úroveň 2, která je plnou verzí jazyka. Pokud není úroveň specifikována, uvažuje se implicitně plná verze úrovně 2. Pokud dokument neobsahuje formuláře, může začínat deklarací:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Level 1//EN//">
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN//"> <HTML> <HEAD> <TITLE>Toto je titulek dokumentu</TITLE> </HEAD> <BODY> <H1>Toto je nadpis dokumentu</H1> Toto je tělo dokumentu </BODY> </HTML>Hlavička dokumentu musí vždy obsahovat titulek dokumentu vymezený značkami <TITLE> a </TITLE>. Titulek dokumentu je text, který není součástí dokumentu, ale slouží pro identifikaci obsahu dokumentu. Obvykle je zobrazen v rámečku okna prohlížeče a prohlížeče jej také vypisují v historii procházených stránek. Titulek by proto měl být krátký, ale výstižný. Značky vymezující blok HTML, hlavičku a tělo mohou být vypuštěny. Minimální verze stejného dokumentu má tvar:
<TITLE>Toto je titulek dokumentu</TITLE> <H1>Toto je nadpis dokumentu</H1> Toto je tělo dokumentuÚplné vypuštění všech těchto značek není rozumné, protože tyto značky jednak formálně definují strukturu dokumentu, jedna lze podle nich snadno poznat, zda část dokumentu neschází.
Hlavička dokumentu musí obsahovat alespoň titulek dokumentu (TITLE). Nepovinnými částmi jsou adresa umístění dokumentu (BASE), pokyn pro indexování (ISINDEX), odkazy (LINK) a metainformace (META).
Adresa umístění dokumentu je důležitá v okamžiku, kdy může klient získat jeden a tentýž dokument pod různými URL. To nastane v případě, že použijeme v adresářové struktuře dokumentů serveru WWW symbolické nebo přímé odkazy. Jeden dokument tak může vystupovat pod různými jmény v různých adresářích. Pokud takovýto dokument obsahuje relativní odkazy, bude jejich zpracování záviset na tom, pod jakým URL byl dokument získán. Pokud má relativní odkaz vždy začínat od stejného místa primárního umístění dokumentu, musí dokument obsahovat v hlavičce značku BASE s atributem HREF:
<HEAD> <TITLE>Toto je titulek dokumentu</TITLE> <BASE HREF="/info/document.html"> </HEAD>Hodnotou atributu HREF musí být v tomto případě absolutní URL umístění dokumentu.
<LINK REV="made" HREF="mailto:...">
<HEAD> <TITLE>Toto je titulek dokumentu</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-2"> </HEAD>Většina serverů tento atribut neinterpretuje a tak zatím jediné použití je ve spojení s prohlížečem Netscape, který interpretuje tento atribut na straně klienta.
<BODY> <H1>Toto je nadpis dokumentu</H1> Toto je tělo dokumentu </BODY>Příklad zobrazení tohoto textu prohlížečem:
<BODY> <H1>Toto je nadpis dokumentu</H1> <P>První odstavec</P> <P>Ukončující značka nemusí být uvedena <P>Toto je třetí odstavec. Konce řádků a mezery jsou ignorovány. </BODY>Příklad zobrazení tohoto textu prohlížečem:
První odstavec
Ukončující značka nemusí být uvedena
Toto je třetí odstavec. Konce řádků a mezery jsou ignorovány.
<BODY> <H1>Příklad speciálních typů bloku textu</H1> <BLOCKQUOTE>Blok citace</BLOCKQUOTE> <ADDRESS> Poslední změna: 2. února 1996<BR> Autor: <A HREF="mailto:www@fuk.vutbr.cz">www@fuk.vutbr.cz</A> </ADDRESS> </BODY>Příklad zobrazení tohoto textu prohlížečem:
Blok citacePoslední změna: 2. února 1996
Předformátované odstavce jsou na rozdíl od ostatního textu zobrazeny neproporcionálním písmem se zachováním rozložení řádků. Jsou definovány typy odstavců předformátovaný text (PRE), příklad (XMP) a výpis programu (LISTING). Odstavec typu předformátovaný text může obsahovat hypertextové odkazy a typografické značky, zatímco ostatní nemohou obsahovat žádné značky, kromě značky ukončující blok. Všechny tyto typy odstavců musí být vždy vymezeny párem značek.
<PRE> předformátovaný text <b>tučně</b> #include <stdio.h> </PRE> <XMP> příklad <b>tučně</b> #include <stdio.h> /* zde nemá význam <xxx> značky HTML */ </XMP> <LISTING> výpis programu <b>tučně</b> #include <stdio.h> /* zde nemá význam <xxx> značky HTML */ </LISTING>Příklad zobrazení tohoto textu prohlížečem:
předformátovaný text tučně #include
<OL> <LI>první bod <LI>druhý bod </OL> <UL> <LI>první bod <LI>druhý bod </UL>Příklad zobrazení tohoto textu prohlížečem:
Ukončující značky </LI> položek seznamu mohou být vypuštěny, protože konec položky je rozpoznatelný ze značky začátku další. Ukončující značka seznamu naopak vypuštěna nesmí být, protože by zůstal seznam neukončený a veškerý následující text by byl považován za součást poslední položky seznamu.
<DL> <DT>Termín <DD>definice termínu, odsazená zleva </DL>Příklad zobrazení tohoto textu prohlížečem:
Ukončující značky termínu a definice mohou být vypuštěny podobně jako u nečíslovaných seznamů. Termíny a definice by měly být vždy ve dvojicích. Výjimkou je možnost uvést několik termínů (několik bloků <DT>) s jediným textem definice. Pro vložení svislého odsazení v definici lze použít značku <BR> nebo <P>. Značka <DL> má volitelný atribut COMPACT, který určuje kompaktnější zobrazení seznamu. Obvykle způsobí vypuštění vertikálních mezer mezi definicí a textem, případně zmenšení šířky sloupce termínů.
Poslední dva typy seznamů jsou kompaktnějšími formami nečíslovaných seznamů. Seznam menu je určen pro zobrazení jednořádkových položek. Adresářový seznam je určen pro zobrazení krátkých položek do 20 znaků. Položky by měly být zobrazeny ve sloupcích, podobně jako sloupcový výpis obsahu adresáře.
<MENU> <LI>první bod <LI>druhý bod </MENU> <DIR> <LI>první bod <LI>druhý bod </DIR>Oba tyto typy seznamů zobrazují běžné prohlížeče stejně jako nečíslované seznamy:
Logické značky
Značka | Zobrazení | Význam |
<CITE>Systém WWW</CITE> | Systém WWW | citace |
<CODE>x = a + i*b</CODE> | x = a + i*b |
kód programu |
<EM>nelze</EM> | nelze | zdůraznění |
<KBD>rm abc</KBD> | rm abc | vstup uživatele |
<SAMP>XmNwidth</SAMP> | XmNwidth | výpis, konstanta |
<STRONG>nikdy</STRONG> | nikdy | silné zdůraznění |
<VAR>filename</VAR> | filename | proměnná |
Typografické značky
Značka | Zobrazení |
<B>tučně</B> | tučně |
<I>kurzíva</I> | kurzíva |
<TT>neproporcionálně</TT> | neproporcionálně |
<A HREF="http://www.server.net/dokument">Toto je hypertextový odkaz</A><p> <A HREF="/images/boz.gif">Toto je odkaz na obrázek</A>Pokud je URL odkazu relativní, doplní prohlížeč chybějící části při použití z URL zobrazovaného dokumentu nebo z jeho bázového URL v hlavičce (viz značka <BASE>). Odkaz nemusí směřovat pouze na hypertextové dokumenty, může adresovat libovolnou informaci, lokalizovatelnou pomocí URL. Odkazy mohou také vést na text uvnitř hypertextového dokumentu. Cíl musí být pojmenován značkou <A> s uvedeným atributem NAME. Jméno cíle musí obsahovat jako první znak mříž (#):
Více viz <A HREF="#hlava2">kapitola 2</A>. ... <H2><A NAME="hlava2">Kapitola 2</A></H2>U jména cíle je třeba dát pozor na vymezení jména cíle. Značka musí vymezovat holý text, nemůže vymezovat označený blok textu. Pořadí značek <A><H2>...</H2></A> je tedy chybné, protože značka <A> vymezuje blok textu typu nadpis. Další atributy odkazů, jako jsou REL (vztah), REV (opačný vztah), TITLE (nadpis), URN (jméno) a METHODS (metoda aktivace) zatím nejsou přesně specifikovány, nebo nejsou prohlížeči interpretovány.
Protože negrafické prohlížeče nezvládají zobrazení textu s vloženými obrázky, ale mohou umět zobrazit samostatný obrázek, je třeba uvážit, zda je obrázek pouze zpestřením textu, nebo má důležitou informační hodnotu. Pokud má informační hodnotu, je vhodnější použití hypertextového odkazu na obrázek (značku <A>). V každém případě by měla značka <IMG> obsahovat atribut ALT, který definuje náhradní text, vypsaný v případě, že prohlížeč není schopen zobrazit vložený obrázek:
<IMG SRC="/images/under.gif" ALT="obrázek zde se pracuje">Značka <IMG> může obsahovat atribut ALIGN definující zarovnání bloku textu, který následuje za vloženým obrázkem. V jazyce HTML verze 2.0 to může být pouze jednořádkový text, který bude zobrazen vpravo vedle vloženého obrázku. Atributem ALIGN je definováno vertikální zarovnání: na horní okraj obrázku (TOP), doprostřed (MIDDLE) nebo na dolní okraj (BOTTOM). Protože u delšího textu je při zarovnání TOP a MIDDLE řádek zalomen nepřirozeně, musí být text krátký.
<IMG SRC="/images/undercon.gif" align="top">Text vpravo nahoře<BR> Text pod obrázkemPříklad zobrazení tohoto textu prohlížečem:
<A HREF="http://www/cgi-bin/imagemap"><IMG ISMAP HREF="image.gif"></A>Pokud stiskne uživatel tlačítko myši na pozici (20,10) od levého horního rohu obrázku, povede odkaz na URL "http://www/cgi-bin/imagemap?20,10". Převod místa aktivace na URL aktivovaného hypertextového odkazu musí zajistit program na straně serveru (například zde uvedený imagemap). Seznam odkazů a aktivační plochy obrázku musí být uvedeny mimo dokument. Konkrétní postup závisí na konfiguraci a typu serveru. Takovéto vložené obrázky jsou nazývány citlivými obrázky (clickable images) a slouží pro grafické zadávání hypertextových odkazů.
Příklad:
Formulář obsahuje vstupní textové pole se jménem ADRESA. Po vyplnění má být aktivován program, jehož URL je "http://www.fit.vutbr.cz/cgi-bin/printenv". Uživatel vyplní formulář a stiskne aktivující tlačítko. Prohlížeč zakóduje data zadaná uživatelem a zašle požadavek GET serveru http na adrese www.fit.vutbr.cz. Server interpretuje URL a konfiguračně závislým způsobem zjistí, že vede na spuštění programu. Spustí určený program a předá mu data zadaná uživatelem v proměnné prostředí QUERY_STRING ve tvaru ADRESA=hodnota. Program zpracuje data a vygeneruje odpověď, kterou server odešle zpět prohlížeči jako odpověď na požadavek GET, a ten ji zobrazí.
Při zpracování požadavkem POST jsou data předána v těle požadavku. Způsob zakódování dat je dán atributem ENCTYPE značky <FORM>. Implicitně je použito kódování "application/x-www-form-urlencoded", které odpovídá popsanému kódování zadaných dat jako doplňku URL:
POST http://www.fit.vutbr.cz/cgi-bin/printenv HTTP/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 40 Typ=Objednavka+hamburgeru&Adresa=nejaka+adresa&Hranolky=ano
Víceřádkové vstupní pole není zadáno značkou <INPUT>, ale speciální značkou <TEXTAREA>. Tato značka je párová. Text vymezený touto značkou tvoří počáteční hodnotu vstupního pole. Počet řádků je určen atributem ROWS a počet sloupců atributem COLS:
<FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET> Adresa: <INPUT TYPE=TEXT NAME=Adresa SIZE=20><BR> Heslo: <INPUT TYPE=PASSWORD NAME=Heslo SIZE=20><BR> Text: <TEXTAREA NAME=Text COLS=20 ROWS=4> Toto je počáteční hodnota víceřádkového textu. </TEXTAREA><BR> Stiskni zde pro odeslání: <INPUT TYPE=SUBMIT> </FORM>Příklad zobrazení formuláře prohlížečem:
<FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET> Hranolky: <INPUT TYPE=CHECKBOX NAME=Hranolky VALUE=ano><BR> Hamburger: <INPUT TYPE=RADIO NAME=Hamburger VALUE=maly>malý <INPUT TYPE=RADIO NAME=Hamburger VALUE=velky CHECKED>velký<BR> Stiskni zde pro odeslání: <INPUT TYPE=SUBMIT> </FORM>Příklad zobrazení formuláře prohlížečem:
<FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET> Adresa: <INPUT TYPE=TEXT NAME=Adresa SIZE=20><BR> Stiskni zde pro odeslání: <INPUT TYPE=SUBMIT VALUE=Send><BR> Obnovení počátečních hodnot: <INPUT TYPE=RESET VALUE=Default> </FORM>Příklad zobrazení formuláře prohlížečem:
Seznam položek je vymezen párovou značkou <SELECT>. Jméno seznamu je zadáno atributem NAME podobně jako u vstupních polí. Pokud obsahuje úvodní značka atribut MULTIPLE, jedná se o seznam s povoleným výběrem více položek současně. Hodnoty položek seznamu jsou zadány textem, vymezeným značkou párovou <OPTION>:
<FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET> Nápoj: <SELECT NAME=Napoj> <OPTION>Cola <OPTION>Tonic <OPTION SELECTED>Pivo <OPTION VALUE=turek>Černá káva </SELECT><BR> Stiskni zde pro odeslání: <INPUT TYPE=SUBMIT> </FORM>Příklad zobrazení formuláře prohlížečem:
<FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET> Stiskni zde pro odeslání: <INPUT TYPE=IMAGE NAME=Obrazek SRC="image.gif"> </FORM>Příklad aktivace formuláře:
GET http://www.fit.vutbr.cz/cgi-bin/printenv?Obrazek.x=10,Obrazek.y=20Vstupní pole může obsahovat atribut ALIGN se stejným významem jako u značky <IMG>.
<FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET> <INPUT TYPE=HIDDEN NAME=Typ VALUE="Objednavka hamburgeru"> Adresa: <INPUT TYPE=TEXT NAME=Adresa SIZE=20><BR> Hranolky: <INPUT TYPE=CHECKBOX NAME=Hranolky VALUE=ano><BR> Hamburger: <INPUT TYPE=RADIO NAME=Hamburger VALUE=maly>malý <INPUT TYPE=RADIO NAME=Hamburger VALUE=velky CHECKED>velký<BR> Stiskni zde pro odeslání: <INPUT TYPE=SUBMIT> </FORM>Příklad zobrazení formuláře prohlížečem:
GET http://www.fit.vutbr.cz/cgi-bin/printenv?Typ=Objednavka+hamburgeru&Adresa=nejaka+adresa&Hranolky=ano&Hamburger=malySkryté pole je odesláno stejně jako vstupní pole zadaná uživatelem a program jej může použít pro rozlišení různých vyplněných formulářů. Hodnotu skrytého pole nemůže uživatel ovlivnit.