做HTML5元素"工作"在非HTML5文档类型?

时间:2014-09-21 09:27:31

标签: html html5 doctype html4

我在一家公司做了一些实习,以重新修改他们的网站。 &#34;问题&#34;是的,他们仍在使用4.01 doc类型,所以我没有机会获得一些不错的HTML5,我想。但后来我看到其他人用<nav>标签实现了一个响应式菜单,并且它有效。我很困惑:

  • (HTML5)doctype究竟做了什么?
  • 如果HTML5元素在HTML4中正确显示,那么两者之间有什么区别?

2 个答案:

答案 0 :(得分:3)

HTML5 doctype仅用于一个目的:触发标准模式。就是这样。 HTML5 spec实际上说明了这一点:

  

注意:由于传统原因,需要DOCTYPE。省略时,浏览器倾向于使用与某些规范不兼容的其他渲染模式。在文档中包含DOCTYPE可确保浏览器尽最大努力遵循相关规范。

doctype的这种特定结构是在所有主流浏览器中触发标准模式所必需的最小值,同时防止文档被误认为是某些其他文档类型。在SGML中,这个&#34; HTML5 doctype&#34;基本上没有意义,因为它既没有系统标识符也没有公共标识符。但是,无论如何都没有人实现SGML(甚至在任何基于SGML的变体中都没有HTML),这意味着浏览器会忽略这一事实并愉快地在标准模式下呈现标记。

无论您使用哪种doctype都不会影响浏览器呈现标记或实现相关API的方式,只要您有一个。也就是说,&#34;标准模式&#34;浏览器使用的是您使用的任何doctype。验证器确实使用doctype声明中的系统或公共标识符来决定验证标记的标准,但浏览器从不使用此信息来决定是否支持某个功能。

当然,如果您有权访问HTML源代码,您应该切换到HTML5文档类型,如果您正在使用HTML5功能。没有任何理由不这样做。

答案 1 :(得分:0)

它正在发挥作用,因为现代浏览器并非真正的&#34;关心doctypes。他们所做的只是触发“标准模式” - 一个好的,必要的东西,确定,但你使用的特定文档类型几乎无关紧要。