那是 HTML5 文档类型,它应该在所有浏览器中都能正常工作,包括 IE6。
JSF 被正式指定为生成符合 XHTML 1.0 的标记(在实现中只有少数违规行为在 JSF 2.2 中得到修复和/或可由上下文参数管理)。JSF 在设计上不能产生非 XML sytnax(例如<br>
代替<br/>
),因此旧的 HTML4 文档类型与 JSF 产生的 HTML 输出决不兼容(也就是说,当您尊重标准和/或害怕W3 验证器时;但是,如果不是所有的浏览器都非常宽容)。与旧的 HTML4 文档类型相反,HTML5 文档类型允许 XML 语法,因此与 XHTML 文档类型兼容。因此,JSF 页面可以使用 HTML5 文档类型进行创作。
doctype 仅对 webbrowser 如何解释和呈现 HTML 标记很重要(在您的特定情况下由 JSF 生成,但 HTML 不一定需要由 JSF 生成,因此浏览器的呈现在技术上与 JSF 完全无关)。尤其是 Microsoft IE 在某些 doctype 方面存在重大问题,或者完全没有 doctype。在此页面的底部,您可以找到结合某些文档类型的浏览器行为的简明概述。有以下三种标准行为:
- Q - 怪癖模式。你真的不想拥有那个。它会触发IE 中的框模型错误。CSS
width
然后height
错误地覆盖了padding
and border
。
- A - 几乎标准模式。经济实惠,只有表格单元格的垂直尺寸不符合 CSS2 规范。如果您想避免表格单元格中图像的神秘间隙,这很有用。
- S - 标准模式。浏览器尝试完全符合 w3 HTML/CSS 标准。首选模式,因为它是唯一一种模式,您可以或多或少地确定您的网站在所有浏览器中看起来都完全相同。
在您的特定情况下,随着从 XHTML 1.0 过渡文档类型到 HTML5 文档类型的更改,Firefox、Chrome、Safari 和 IE>=8 将从“A”变为“S”。因此,如果您想要一个像素完美的设计,您绝对应该查看浏览器对您网站的展示,以了解表格单元格中的图像填充。
关于文档类型在 IE 中的重要性,这里有一段 HTML 演示了 IE6-9 中“Q”触发的盒子模型错误(注意,这不再在 IE10 中体现):
<!DOCTYPE html>
<html lang="en">
<head>
<title>Remove DOCTYPE to trigger quirksmode</title>
<style>
#box {
background: yellow;
width: 100px;
padding: 20px;
border: 20px solid black;
margin: 20px;
}
</style>
</head>
<body>
<div id="box">box</div>
</body>
</html>
复制'n'粘贴'n'运行它。现在<!DOCTYPE html>
,您将看到一个矩形。如果没有 doctype 行,您将看到一个真正的正方形(在 IE10 中,您需要在 webdeveloper 工具集中(按 F12)将“浏览器模式”更改为例如 IE9 才能看到它)。
也可以看看: