Autor Zpráva
dokola
Profil *
Měl jsem pocit, že tag <div> by neměl vadit pokud je uveden uvnitř odkazu <a> a přesto když stránky pak chci validovat, tak mi to hlásí chybu.

Line 178 column 7: document type does not allow element "DIV" here; missing one of "APPLET", "OBJECT", "MAP", "IFRAME", "BUTTON" start-tag.

Jsem z toho nějakej divnej...

Dík za nápady
Oswald
Profil
Článek na Interval.cz: XHTML - povolené obsahy elementů

Obecně: inline prvky (<a>, <em>, <strong>, <span>, ...) nemohou obsahovat prvky blokové (např. <div>, <p>, <form>, ...).
Chamurappi
Profil
Nabízí se otázka, proč je odkaz zařazen mezi řádkové elementy.
Dero
Profil
Nabízí se otázka, proč je odkaz zařazen mezi řádkové elementy.

Protože kdyby byl blokový, tak by lidé nadávali na tyto a podobné konstrukce, které by byly dokonale validní:

<a href="...">
<form>
<input type="text" />
...
...
...
</form>
</a>

Použitelný formulář, ideální případ tzv. click & die.

Bylo by to ještě složitější, než v současnosti je - určit přesné chování odkazů.

Koneckonců prohlížeče nemají s blokovými elementy uvnitř odkazů potíže. A o validitu přece nejde, či snad?
Chamurappi
Profil
Reaguji na Dera:
Neříkám, aby byl blokový. Má být mimo, někde mezi speciálními. Odkaz je jen a pouze odkaz, odvolávám se na bůžka sémantiky :-)

K tebou uvedené konstrukci: Stačilo by v HTML DTD zakázat umístění formuláře do odkazu. Validních nesmyslů existuje plno, na příklad: <table><ins>text mimo buňku</ins><tr><td></table>. Jsou však neškodné. Málokdo si uvědomí, jaké „nekalosti“ může páchat.
Odhaduji, že dát do odkazu formulář toužilo dosud méně lidí, než kolik tam chtělo dát <div> či nadpis. Ty, co tam chtěli dát formulář, patrně použitelnost nezajímala a validita už vůbec ne. Nebudu zamykat záchod jen proto, že by mi tam zloděj mohl vykonat potřebu.

A o validitu přece nejde, či snad?
Mně ne. Kdyby validita o něčem skutečně vypovídala, zaujal bych možná jiný postoj. Zmíněná nespokojenost s odkazem je jedním z mnoha důvodů, proč ji nepovažuji za vhodný metr.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0