Autor Zpráva
Musilda
Profil
Dobrý den, můžete mi prosím vysvětlit proč validátor na toto

<div id="horni_menu">

<ul>
  <div class="horni_menu1">  
    <li><a href="index.php?dn=5724">Home</a></li>
  </div>
  <div class="horni_menu1">
    <li><a href="index.php?dn=5725">Aktuality</a></li>
  </div>
  <div class="horni_menu1">
    <li><a href="index.php?dn=5727">Reference</a></li>
  </div>
  <div class="horni_menu1">
    <li><a href="index.php?dn=5729">Ceník</a></li>
  </div>
  <div class="horni_menu1">
    <li><a href="index.php?dn=5730">Kontakt</a></li>
  </div>
  <div class="horni_menu1">
    <li><a href="index.php?dn=5728">Poptávka</a></li>
  </div>
</ul>
</div>


Vypíše

# Řádek 29, znak 8: element "LI" není dovolen na tomto místě; musí být uvnitř jednoho z elementů "UL", "OL", "MENU", "DIR".

    <li><a href="index.php?dn=5725">Aktuality</a></li>
       ^

# Chyba Řádek 32, znak 8: element "LI" není dovolen na tomto místě; musí být uvnitř jednoho z elementů "UL", "OL", "MENU", "DIR".

    <li><a href="index.php?dn=5727">Reference</a></li>
       ^

# Chyba Řádek 35, znak 8: element "LI" není dovolen na tomto místě; musí být uvnitř jednoho z elementů "UL", "OL", "MENU", "DIR".

    <li><a href="index.php?dn=5729">Ceník</a></li>
       ^

# Chyba Řádek 38, znak 8: element "LI" není dovolen na tomto místě; musí být uvnitř jednoho z elementů "UL", "OL", "MENU", "DIR".

    <li><a href="index.php?dn=5730">Kontakt</a></li>
       ^

# Chyba Řádek 41, znak 8: element "LI" není dovolen na tomto místě; musí být uvnitř jednoho z elementů "UL", "OL", "MENU", "DIR".

    <li><a href="index.php?dn=5728">Poptávka</a></li>

# Chyba Řádek 25, znak 3: ukončovací značka elementu "LI" je vynechána, což jeho deklarace nepřipouští.

  <div class="horni_menu1">  
  ^

Zapomněli jste uzavřít element.
# Chyba Řádek 25, znak 27: počáteční značka elementu "LI" je vynechána, což jeho deklarace nepřipouští.

  <div class="horni_menu1">
bitbit
Profil
Protoze mas kolem li jeste ty divy
Str4wberry
Profil
Proč si nepřečtete ty hlášky, Musildo?

element "LI" není dovolen na tomto místě; musí být uvnitř jednoho z elementů "UL", "OL", "MENU", "DIR"

Pokud chcete stránku validní, tak postupujte následovně:
<div id="horni_menu">   
  <ul> 
    <li><div class="horni_menu1"> <a href="index.php?dn=5724">Home</a></div></li> 
  </ul> 
</div>
Chamurappi
Profil
Reaguji na Musildu:
Snaž se chybové hlášky řešit postupně. Když vidím „ukončovací značka elementu "LI" je vynechána, což jeho deklarace nepřipouští“, předpokládám, že tohle nejsou všechny chyby, které ti validátor hlásí.
Musilda
Profil
Str4wberry
Děkuji nyní tomu již rozumím. A ty "hlášky" jsem četl, jinak bych sem asi nepsal, že?

Chamurappi
Před touto hláškou mám pouze několik varování na

Řádek 10, znak 49: zjištěn NET zápis.

<meta http-equiv="content-language" content="cs"/>

Což jsem ještě nevyhledal a chybnou definici typu dokumentu.
SwimX
Profil
Musilda
zjištěn NET zápis.
a chybnou definici typu dokumentu.
tipnu si. Používáš XHTML ale odesíláš mime type text/html
Je to falešné XHTML, protože ho stejně všechny prohlížeče berou jako HTML (díkybohu), takže bych ti doporučil změnit DOCTYPE na HTML 4.01 Trans nebo strict jak chceš. A vyházet ty />
Trejpa
Profil
Musilda
<meta http-equiv="content-language" content="cs"/>
NET zápis v HTML specifikaci umožňuje zkracovat značky: <b>tučné</b> lze zkrátit na <b/tučné/, <hr> na <hr/ a podobně. Protože má lomítko ukončovací funkci, měl by prohlížeč tvou značku <meta ... /> chápat jako <meta ... >> - tedy vykreslit za značkou pravou špičatou závorku. Pokud je tato závorka v hlavičce, jedná se o textová data, která hlavičku automaticky ukončí. Potom je tvá značka podle specifikace chápána takto: <meta ...></head><body>>. To může mít vliv na další výpisy chyb týkající se nevhodného umístění elementů.

NET zápis podle specifikace chybou není, ale validátor na ni upozorňuje proto, že ho (naštěstí) většina používaných prohlížečů ignoruje jako syntaktickou chybu, takže se nezobrazí podle specifikace. Díky tomu je tvůj pseudo XHTML kód zobrazen správně.

chybnou definici typu dokumentu
Pokud jde o chyby v definici typu dokumentu (DTD), tak je to způsobeno nekompatibilitou mezi HTML a XHTML definicemi. Tvůj pseudo XHTML kód posílá v serverové hlavičce MIME type "text/html", takže má na něj prohlížeč i validátor nahlížet podle HTML pravidel, tedy vyžadovat HTML formát definice.

Chceš-li, aby to všude fungovalo, ponech MIME typ na hodnotě "text/html".
Chceš-li, aby to bylo i validní (v českém validátoru - oficiální v tomto porušuje W3C specifikaci), tak ještě změň DOCTYPE na nějaké kompatibilní s tímto MIME type (doporučuji HTML 4.01 Transitional) a oprav si syntaxi (zejména odstranění těch lomítek na koncích nepárových značek).
panther
Profil
Trejpa
že ho (naštěstí) většina používaných prohlížečů ignoruje jako syntaktickou chybu,
většina - máš konkrétní případ prohlížeče, který do této většiny nepatří?
Trejpa
Profil
panther
Ano. Podle mých informací NET zápis zvládá Lynx (ale nemám to jak ověřit).
_es
Profil
Trejpa
Ano. Podle mých informací NET zápis zvládá Lynx (ale nemám to jak ověřit).
http://www.yellowpipe.com/yis/tools/lynx/lynx_viewer.php
Trejpa
Profil
_es
Ještě tě doplním: http://www.delorie.com/web/lynxview.html

Ověřeno. NET zápis v Lynxu funguje (říkají dva on-line testy).

EDIT: Funguje, ale ne úplně podle specifikace. Viz Bubák níže.
Bubák
Profil
Funguje, ale není to přesně podle specifikace, zežere zobáček, >.

Dodatek:
Mám na mysli třebas u XHTML značky <br />, podle HTML specifikace by se měl zobáček zobrazit.
Trejpa
Profil
Bubák
Aby se znak > vykreslil, má být podle specifikace zaentitovaný jako &gt;.
Řeší snad specifikace vykreslení nezaentitovaných znaků nebo je to na libovůli prohlížečů?
Pokud by to specifikace neřešila, potom jí požírání neznámých znaků neodporuje (co neznám, ignoruji).
Bubák
Profil
<br />
Lynx sežere zobáček

<br />>
Lynx sežere jeden zobáček, druhý zobrazí

//>>
Lynx zobrazí správně.

> nemusí být entitou, na rozdíl od <
imploder
Profil
Slovosled věty "Element xxx není dovolen na tomto místě" je takový divný - je z anglické verze. Lepší by bylo "Element xxx není na tomto místě dovolen".
Chamurappi
Profil
Reaguji na Trejpu:
O tom, co si počít s většítkem, se vedla i debata pod mým článkem na Lupě. Je to znak jako každý jiný.

V HTML dost často platí, že nezaentitovaný řídicí znak nikdy sám o sobě nezpůsobí syntaktickou chybu. Buď nezpůsobí vůbec žádnou chybu a bere se jako obyčejný znak, nebo způsobí nějakou sofistikovanější (nedefinovanou entitu, neznámý element atd.). Ani menšítko a ampersand se v řadě případů nemusí zapisovat entitou.


Reaguji na implodera:
Mně připadá zvolený slovosled v pořádku, klade důraz na toto místo. Když ti řeknu „nesmíš sedět tady“, pochopíš z toho, že sedět můžeš, ale někde jinde. Když ti řeknu „nesmíš tady sedět“, pochopíš z toho, že nesmíš sedět, ale můžeš být tady.

Při překládání jsem se snažil přemýšlet, nepostupoval jsem jako automat, anglická verze téže hlášky zní: „document type does not allow element (.*?) here; missing one of (.*?) start-tag“.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0