2014-09-21 62 views
2

我在一家公司做了一些實習來重新建立自己的網站。 「問題」是他們仍然使用4.01文檔類型,所以我沒有機會得到一些漂亮的HTML5,我想。但後來我看到其他人使用<nav>標籤實施了響應式菜單,並且它工作正常。我很困惑:HTML5元素在非HTML5文檔類型中「工作」嗎?

  • (HTML5)文檔類型究竟幹什麼?
  • 如果HTML5元素在HTML4中正確顯示,那麼兩者之間有什麼區別?

回答

3

HTML5 doctype只提供一種用途:觸發標準模式。而已。該HTML5 spec實際上這個規定直接:

注:文檔類型所需的遺留原因。省略時,瀏覽器傾向於使用與某些規範不兼容的不同渲染模式。在文檔中包含DOCTYPE可確保瀏覽器盡最大努力遵循相關規範。

doctype的這種特定結構是在所有主流瀏覽器中觸發標準模式,同時防止文檔被誤認爲某種其他文檔類型所必需的。在SGML中,這個「HTML5文檔類型」實質上沒有意義,因爲它既沒有系統標識符也沒有公共標識符。但是從來沒有人實現過SGML(甚至在任何基於SGML的變體中都不包含HTML),這意味着瀏覽器將忽略這一事實並愉快地在標準模式下呈現標記。

無論您使用哪種doctype,只要您有一個doctype,就不會影響瀏覽器如何呈現標記或實現相關的API。也就是說,瀏覽器使用的「標準模式」與您使用的任何類型相同。驗證器在doctype聲明中使用系統或公共標識符來決定哪種標準來驗證標記,但瀏覽器從不使用這些信息來決定是否支持某項功能。

當然,不言而喻,如果您有權訪問HTML源代碼,那麼如果您使用HTML5功能,則應該切換到HTML5文檔類型。真的沒有什麼理由不這樣做。

+0

我不太清楚,如果我明白這一點。因此,無論您使用哪種doctype,瀏覽器都會嘗試將代碼呈現爲標準方式(「標準」是在該瀏覽器中實現的「標準」)。因此,如果瀏覽器與HTML5兼容,即使使用了較早的文檔類型,它也會像HTML5一樣呈現文檔。 此外,這是否意味着像localStorage這樣的功能也可以在HTML4工作區中工作? (要回答您的問題,很遺憾,我無權訪問文檔類型,因此我無法將其替換爲HTML5)。 – 2014-09-21 10:12:20

+1

@Bram Vanroy:是的,瀏覽器只查看文檔類型,而不是其內容。是的,像localStorage這樣的功能似乎無論如何都有效。 – BoltClock 2014-09-21 10:14:47

0

它正在工作,因爲現代瀏覽器不「真正」關心文檔類型。他們所做的只是觸發「標準模式」 - 確實是一件好事,必要的事情,但您使用的具體文檔類型幾乎是無關緊要的。