我最近在学习文档类型(doctypes),想知道 <!DOCTYPE html>
和其他一些 doctype 之间的区别。
我知道 <!DOCTYPE html>
是 HTML5 的 doctype,而且它是实验性的,但是如果我使用它而不是其他的 doctype,会发生什么呢?
提前感谢!!!
<!DOCTYPE html>
在它们中的表现与HTML 4和XHTML 1文档类型相同(即触发标准模式)。然而,如果您使用它,则验证器将默认将您的页面验证为HTML5,如果您实际上正在编写HTML 4,则可能不是您想要的。(例如,一些元素在HTML5中被删除。如果您将页面验证为HTML5,使用这些元素会显示为错误。)Lucas nailed the most important aspect. Let me explain this in a slightly different way:
在浏览器中,doctype 的作用只有一个,即设置渲染模式:Quirks、almost standards 和 full standards 模式。这在 MSIE 8 之前是很简单的,但 MSIE 8 引入了第二个开关,“compatibility mode” = 故意保留 MSIE7 的漏洞和限制。
HTML5 doctype 将(通常)覆盖该设置,因此比 XHTML 1.x 或 HTML 4.01 doctype 更强大。(不过,MSIE 有时可能会覆盖它。)
doctype 切换和布局模式的权威指南在:http://hsivonen.iki.fi/doctype/
其次,您将根据 HTML5 规则验证页面。一些在 HTML 4 中允许的元素和属性已经被删除,一些新的元素和属性已经出现。
编辑:删除示例。现在可以混合以前称为行内和块级元素的东西。(在最初的提案中不行。)
HTML5 的语义和语法大多类似于 HTML 4,因此大多数精心编写的 HTML 4 网站仍将继续验证。主要的区别是,您可以开始使用新东西而仍然有效。
这并不违法
<div>
<p>foo</p>
<span>bar</span>
</div>
在HTML5中,“块级元素”和“内联元素”的术语已经过时。