2013-11-25 138 views
1

從作者/服務器的角度來看,HTML4是否與W3C HTML5向前兼容?或者,從HTML引擎開發人員/客戶端的角度來看,W3C HTML5是否向後兼容HTML4?HTML4是否與HTML5向前兼容?

我意識到直覺答案是肯定的,但是我發現這種直覺經常出現,因爲幾乎所有的瀏覽器都支持這兩種HTML4和HTML5特性。 HTML5棄用了一些東西,所以我會想象一個只有支持HTML5(沒有任何其他文檔類型的概念)的用戶代理在HTML4特定的事情上會遇到一些麻煩。

所以,措辭問題的另一種方法是:做HTML5規範覆蓋一切 HTML4覆蓋,並遇到一個過時的功能,當它需要實現在特定的,定義或實現定義的方式來降低?這些方式通常被認爲能夠保證HTML4文檔的可用性? (不僅僅是要求執行錯誤或忽略太多東西)。

回答

0

簡短回答:不,HTML4與HTML5不兼容(從doctype定義開始)。

龍答:http://www.w3.org/TR/html5-diff/

+0

我最近重新考慮這可能實際上是最簡單和最準確的答案(關於你對doctypes的具體觀點)。然而事實證明,這並不是正確的:「[爲了幫助作者從HTML4和XHTML1轉換,可以將過時的允許的DOCTYPE字符串插入到DOCTYPE中](http://www.w3.org/TR/html5/ syntax.html#的-DOCTYPE)」。因此,嚴格的HTML5實現確實知道HTML4,並會相應地降級。根據其他答案,HTML4文檔是否仍然可以在降級後被認爲是可用/兼容的,仍然存在爭議。 – tne

2

沒有,一個HTML 4號文件一般不是有效的HTML5文檔。對於HTML 4 Strict文檔,答案是一樣的,但對於它來說,不兼容性可能會以合理緊湊的形式列出(比如大約六頁左右)。一個簡單的語法示例是acronym元素,它符合HTML 4,不符合HTML5。一個更復雜的問題是small元素:在HTML 4中,它意味着更小的字體大小;在HTML5中,它有一個模糊的「語義」定義爲「小字體」 - 所以只有在較小字體大小的情況下才有效使用small的HTML 4文檔不符合HTML5規範。

沒有規範和嚴格的差異列表。請注意,HTML5正在進行中(而HTML 4有一些模糊性,即使它正式「最終」)。

對於大多數在HTML5中聲明爲不合格的HTML 4功能,HTML5需要瀏覽器的持續支持。

HTML5不涵蓋HTML 4涵蓋的所有內容,甚至包括描述性內容。除了將大部分HTML 4聲明爲過時外,它還留下了一些完全未指定的HTML 4功能。

+0

感謝您的回答。 [porneL](http://stackoverflow.com/a/20200673/2266481)似乎不同意任何HTML4功能未指定。從他鏈接的HTML5的§15開始,似乎至少所有列出的不符合要素都定義了行爲分配(我只檢查了六打)。你知道任何未列出的功能嗎? – tne

1

HTML5規範是否覆蓋HTML4涵蓋的所有內容,是否需要實現在遇到過時特性時以指定的,定義的或實現定義的方式降級?

基本上,是的。涵蓋了HTML4和以前所有版本所需的所有內容,甚至包括<xmp><plaintext>等異國情調。

當前的瀏覽器實際上並不實際支持HTML4,它們將HTML4文檔解釋爲具有不同級別向後兼容性怪癖的HTML5。

有幾種文檔模式,如怪癖/幾乎標準/標準和HTML/XML模式,但沒有沿着HTML4/HTML5線劃分(例如,具有完整嚴格DOCTYPE的HTML4獲得與正確HTML5相同的處理)。即使您爲文檔HTML2添加標籤,也可以使用<video>。0和<isindex>即使在使用HTML5 DOCTYPE時也能正常工作。

雖然HTML5使得一些HTML4元素不符合,它仍然定義他們,仍然需要瀏覽器支持它們(作者HTML5要求比瀏覽器廠商HTML5的要求不同):

http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html

HTML5旨在完全向後兼容HTML4作爲網上使用,故意忽略HTML4規範的理論方面,例如它比IE6的HTML tagsoup解析器更符合SGML語法HTML4本應具備的功能 - 因爲這是網上大多數網站實際上都兼容的。