2010-03-07 42 views
1

我最後的公司,該公司使用的4.01 DOCTYPE獨家,標籤決定在「專有」 HTML在HTML 4.01

<pp:foo attrOne="something" attrTwo="something else"/> 

形式添加基於採用專有標籤的一些新的功能,在他們的某些目的。 aspx頁面。一開始,他們打破了大量的Javascript,直到我發現當這些專有標籤自動關閉時,它們(在某些情況下)導致文檔的其餘部分被解釋爲該元素的子代。 (我要補充一點,在任何情況下,輕鬆地使用專有標籤4.01我不覺得,但是這個決定是我上面的薪酬等級制)

在我的預感的基礎上,我建議他們更改爲

<pp:foo attrOne="something" attrTwo="something else"></pp:foo> 

和所有壞的Javascript DOM操作再次回來。我找不到任何地方提及這種行爲,修復它只是我的一個幸運的猜測。我的問題是,有沒有人知道具體爲什麼這應該是?

回答

3

您遇到此問題,因爲HTML 4.01不支持您的第一個示例中的自閉標籤。

+1

查看http://www.w3.org/TR/html4/intro/sgmltut.html 3.2.1元素 – Pindatjuh 2010-03-07 16:36:11

+1

謝謝大家。回想起來,這似乎很明顯,但有時從內部看,我們無法看到樹木的森林。 – Robusto 2010-03-07 16:47:31

3

W3C html validator給出了稍微的解釋:

序列< FOO />可以 解釋以至少兩種不同方式 ,取決於 文檔的DOCTYPE。
對於HTML 4.01嚴格, '/'終止標記< FOO( 隱含'>')。
然而,由於許多 瀏覽器不這樣理解, 即使在HTML 4.01 嚴格的DOCTYPE的情況下,最好是避免它完全 純HTML文件和 保留其使用專爲那些 用XHTML編寫。

相關問題