Autor | Zpráva | ||
---|---|---|---|
anonymní Profil * |
#1 · Zasláno: 15. 1. 2008, 20:15:29
Zajímalo by mě, proč mi validátor nepovolí tagy <pre> a <ul> uvnitř <p>
Píše mi: document type does not allow element "pre" here; missing one of "object", "applet", "map", "iframe", "button", "ins", "del" start-tag. Zajímalo by mě, proč tyto tagy nemohou být uvnitř odstavce. Díky za odpovědi |
||
Chamurappi Profil |
#2 · Zasláno: 15. 1. 2008, 20:27:35 · Upravil/a: Chamurappi
Reaguji na anonymního:
Protože to W3C a výrobci prohlížečů takhle kdysi dávno vymysleli. Užíváš-li XHTML, můžeš se na validátor klidně vybodnout a fungovat to bude správně. Užíváš-li HTML (což je pravděpodobné), tak ti <pre> do <p> dát ani nepůjde, protože se odstavec sám zavře. O tom, jestli užíváš HTML nebo XHTML, nerozhoduje <!doctype>. Zkus si dát do dokumentu tohle: <p style="color: red">a<pre>b</pre>c</p> |
||
Joker Profil |
#3 · Zasláno: 15. 1. 2008, 20:33:52
Protože ty prvky prostě uvnitř <p> být nemohou.
Příklad, část kódu: <body> <p><ul><li>test</li></ul></p> </body> Zpracování se bude lišit podle toho, jestli jde o HTML nebo XHTML (XML): - HTML: Protože <ul> nemůže být uvnitř <p>, domyslí si před ním </p>. Výsledkem bude: <body> <p></p><ul><li>test</li></p> </body> ...a chyba: přebytečný </p> na konci. Pokud kodér vynechává koncové značky odstavců, může tenhle kód být dokonce validní, ale prvek <ul> nebude uvnitř odstavce- odstavec bude parserem "tiše ukončen" před <ul> - XHTML: <ul> sice nepatří dovnitř <p>, ale XHTML si značky nedomýšlí, takže ten kód zpracuje skutečně tak, jak je napsaný. Akorát validátor si bude stěžovat. |
||
anonymní Profil * |
#4 · Zasláno: 17. 1. 2008, 20:56:47
Myslel jsem si, že značky <p> a <pre> označují blokové elementy, a tedy, že je možné je do sebe vkládat.
Ale mýlil jsem se... Díky za odpovědi. |
||
Dero Profil |
#5 · Zasláno: 17. 1. 2008, 21:20:00
anonymní: <p> je blokový element, jehož obsahem mohou být pouze řádkové prvky a prvky s obojakým charakterem (např. <ins>).
|
||
Časová prodleva: 16 let
|
0