Autor Zpráva
error414-
Profil *
Mam problem s validaci, chtel jsem udelat nejjednodusi html dokument ale nachapu W3C

u tagu head je Start tag: optional, End tag: optional
u tagu title je Start tag: required, End tag: required
a dale
Every HTML document must havea TITLE element in the HEAD section.

Vubec to nechapu, kdyz mam tag head voliteny jak muzou psat ze do neho musim neco dat?

http://www.w3.org/TR/html4/struct/global.html
maxto
Profil *
Jestli chceš nejjednoduš HTML soubor tak napiš tohle:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>

<title> Stránka </title>

</HEAD>
<BODY>


</BODY>
</HTML>
error414
Profil
maxto
Diky
ale me ted jde o to vysvetleni specifikace
Timy
Profil
error414
prohlížeč si optional značky domýšlí, tudíž když napíšeš title, obalí si ho automaticky headem. Je to stejné jako si prohlížeč domýšlí optional značky </li>. Nejjednodušší dokument vyhovující specifikaci HTML by měl být tento:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title>asd</title>
<p>asd</p>
error414
Profil
Timy

to ale odporuje tomuto
Every HTML document must havea TITLE element in the HEAD section.

A specifikace nepocita s takovym chovanim prohlizecu.
Chamurappi
Profil
Reaguji na error414:
Specifikace s tím počítá. Je nutné rozlišovat mezi značkou (tagem) a elementem. Element je cosi složeného z počáteční značky, koncové značky a nějakého obsahu mezi nimi. Značky mohou být volitelné, i když je sám element povinný.

„Domýšlení značek“, to je jen pojem pro lepší představu o tom, co se děje. Začíná <title>, který smí být jen a pouze uvnitř elementu <head> => začíná i element <head>, který zase smí být jen a pouze uvnitř elementu <html> => začíná element <html>. Platí tedy vždy, že element <title> je uvnitř <head> a že <head> je uvnitř <html>. Obdobně je v prakticky každé tabulce přítomen element <tbody>. Je možné ho nastylovat.
Příklad z běžného života: Jdeš-li koupit litr mléka, je z kontextu zřejmé, že koupíš i onu krabici, v níž se uchovává. Krabice je v daný okamžik jen nutným obalem pro mléko. Není jeho neodmyslitelnou součástí -- piješ-li ho, piješ jen tekutinu a obal k němu nepřikusuješ. Předpokládám.


Úplně nejmenší dokument vyhovující specifikaci (ač nefunkční) vypadá nějak takto:
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"><title//ň

-- uvnitř elementu <head> není povoleno (ani) ň => element <head> se ukončí; jenže ň není povoleno ani uvnitř <html> => hledá se pro ň možný rodič s volitelnou počáteční značkou a hle -- je to <body>, je to jasné, z <body> bude maminka. Parser by měl výše zmíněný řádek vnímat stejně jako tento dokument:
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

<html version="-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<title></title>
</head>
<body>
ň
</body>

Důkaz.
error414
Profil
Chamurappi

diky, ta specifikace je slozitejsi nez jsem myslel diky za vysvetleni
error414
Profil
Jeste dodatek

takze ja nemusim ani zadavat tag table a rovnou psat td?
Chamurappi
Profil
Reaguji na error414:
Musíš, neboť element <table> nemá volitelnou počáteční značku.
Volitelná je pouze u <html>, <head>, <body> a <tbody>, viz přehled elementů.

Ta specifikace vůbec není složitá. Stačí se prokousat skrze základy a vše začne dávat smysl :-)
error414
Profil
Chamurappi
takze ta volitelna znamena ze si ji domysli.

kdyz nezadam tag html tak si ji domysli, tag P nema povinou ukoncovaci cast tudiz si ji domysli. A u NOSCRIPT si nedomysli nic protoze zacatek a konec jsou povine
llook
Profil
Chamurappi
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"><title//ň

Ještě bych dodal, že dnešní prohlížeče neumí tento zkrácený zápis značek, takže stránka je sice validní, ale zobrazí se jako <title//ň.
Timy
Profil
Jinak pokud se stránka pošle jako application/xhtml+xml tak si prohlížeč nic nedomýšlí (proto jsou v XHTML značky <html>, <head> a <body> povinné)
Anonymní
Profil *
jde o nepochopeni jazyka, oni nerikaji, ze MUSITE mit HEAD a V NEM TITLE, tedy ze OBOJI MUSI BYT ve strance PRITOMNO, nejde o zadne obalovani ani o nic jineho, ale proste rikaji, ze pokud MATE VE STRANCE head, MUSI v nem byt title, to je cele :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0