HTML:我们真的需要不同的文档类型吗?

4

为什么W3C有不同的文档类型规范呢?他们本可以只推荐一种松散类型(因为这样会减少愚蠢错误的数量),并将其标准化到所有浏览器中(包括移动设备和PDA中的浏览器)。

我在任何教程中都没有得到令人满意的答案。我一直在阅读“这些不同文档类型的区别”,但我想知道我们是否真的需要它?


听起来HTML 4有问题..也许他们在推荐时有其他想法..结果却是另一回事..好的.. - Rookie Programmer Aravind
1
W3C在发布XHTML 1.1规范时做得很对。现在只有一个XHTML 1.1规范,不再有松散或框架集变体。但这已经太少、太晚了,现在只有HTML5。 - Mr Lister
5个回答

11

这就是HTML5要实现的目标:

<!DOCTYPE html>

6
您应该听一下与Molly Holzschlag的Hanselminutes,他们详细讨论了这个问题。
引用: "Molly Holzschlag:所以,当我们考虑DOCTYPE时,我们想到的是一些非常被动的东西,它从来没有意味着要成为现在的样子。"
"......"
"所以现在我们有了这个DOCTYPE切换,这使得DOCTYPE承受了比它曾经更多的压力。它本质上是一个hack,但它是推动Web发展所必需的,我认为这就是我想提醒大家一些人做了一些好工作的原因。但出于这个原因,它也增加了一层混乱。所以当我们比较现在的DOCTYPE时,我们转向HTML 5.0并查看DOCTYPE时,DOCTYPE只是小写HTML中的尖括号、感叹号和DOCTYPE。没有别的了。"

3
旧的文档类型(HTML 5之前)是在SGML中嵌入版本和验证信息的标准化机制。如果您使用全功能的SGML工作流程,它们可以提供自动处理文件的极大可能性。
在这种情况下,HTML 4 / XHTML 1的不同文档类型(10年前)是一个相当好的想法。它们允许作者说:“哦,我有一个旧页面,我必须使用这个和那个标签。”或者“是的,我使用最新和最干净的标记。我知道我在做什么。”
为什么需要“公共标识符”等东西?其中一个好处是:它允许本地存储(并稍后重新分配)任何HTML文件的DTD,并使您即使没有Internet访问也能验证它。(请记住:SGML是在80年代标准化的。)

2

当前标准每种语言都有三种Doctype,它们各自适用于不同的场合:

  • Frameset — 我正在使用框架
  • Transitional — 这个标准在90年代中期出现,我还没有准备好使用CSS
  • Strict — CSS已经准备好了

1

嗯,像文档类型这样的标准的演化总是一个委员会坐在一起制定标准的过程;真正实现标准的世界;标准的错误和失败变得可见;然后委员会制定新的、改进的标准,但不能从头开始,因为必须保留向后兼容性。因此,引入了修复和解决方法,以便可以使用新标准而不破坏旧标准。

很多愚蠢的事情就是这样发展的。

正如其他答案所指出的,HTML5 承诺在这方面有所改善。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接