题
我今天被一位资深开发人员问到,如果我要为开放网络写一些东西(个人/非商业),我会使用哪种doctype。
我回答,<!doctype html>
,我受到了震惊,恐惧和惊讶的欢迎,然后被要求解释自己。
在我看来,它是一个很好的候选者,因为当前的浏览器(IE,FF,Opera,Safari)会查看它并将内容切换到标准模式 - 即使它们没有实现HTML5。如果我想真正利用HTML5元素,我可以使用一些javascript来创建对那些IE无法识别的标签的引用(例如document.createElement('article');
),然后使用它们就好像它们是DOM的本机部分一样
这真的是一个糟糕的答案吗?你会回答什么以及为什么?
解决方案
虽然&lt;!doctype html&gt;
非常好,但 WHW-WG建议使用&lt;!DOCTYPE html&gt;
,以防万一你最终以XHTML5的形式提供文件(在这种情况下,大小写变得很重要)。
@David Dorward(无法发表评论,所以&#8230;)我不同意您对HTML5的陈述。虽然新的东西(结构元素等)目前浏览器支持不足,但HTML5是90%HTML4,具有定义的错误处理(最终)。浏览器解析HTML5与HTML4相同,因此假设您不使用结构元素( div
仍然有效),差异很小。 Validator.nu比W3&#8217; HTML4.1 Strict验证器提供更好的结果,开发速度更快,并且基于更详细的规范。
我的建议是暂时忽略HTML5中的新内容,并将其视为HTML4的更精确规范。没有缺点和好处。
其他提示
&lt;!doctype html&gt;
似乎很好..
这个新的DOCTYPE有什么好处,特别是,所有当前的浏览器(IE,FF,Opera,Safari)都会查看它并将内容切换到标准模式 - 即使它们没有实现HTML5。这意味着您今天可以开始使用HTML5编写您的网页,并让它们持续非常非常长的时间。 / http://ejohn.org/blog/html5-doctype/
这真的是一个错误的答案吗?
&lt;!DOCTYPE html&gt;
并不是一个糟糕的答案。
你会回答什么以及为什么?
我已经给出了关于一般选择doctype 的罐头答案,甚至虽然我使用&lt;!DOCTYPE html&gt;
作为我的新个人刊物。
HTML5 - 具有仍在不断变化的目标的实验性,不成熟的QA工具。 (如果你必须使用JavaScript(可能会被关闭)来获得基本的结构元素,那么'eeep!')。
XHTML - 需要附录C hackery才能使用Internet Explorer。 DTD的表现力不如HTML 4。
HTML 4 - 成熟,经过良好测试,主要由浏览器支持,不需要任何hackery。无法通过XML工具进行解析(但很少有人在网页上内部使用这些工具)
严格 - 一个好的核心。
过渡性 - 应该避免严格加上(有一些例外)的东西。
因此,HTML 4.01 Strict可能是最佳选择。显然有例外,但我会把它作为起点。
我会回答你的问题,因为你是正确的,我不再使用任何其他doctype用于任何新的网页,原因如下面的几个好的链接(包括Anne的答案,因为他在Opera工作)。 / p>
首先,我要说首先不应该引入Doctype。您不能使用text / html mimetype以外的任何其他方式提供跨浏览器页面,并且不要让我开始使用DTD。
所有doctype都是触发标准模式,只是因为许多站点不是按标准构建的,更不用说w3c规范了。如果doctype只有一个目的,那么简单。 HTML5正是如此。开发人员不应该让我们假装doctype具有除开关标准模式之外的任何其他含义。
“高级”开发人员应该继续他的工作,并停止对人们讨论这些无聊的东西。