代码之家  ›  专栏  ›  技术社区  ›  Phil.Wheeler

哪个HTML doctype?

  •  6
  • Phil.Wheeler  · 技术社区  · 16 年前

    今天,一位高级开发人员问我,如果我要为开放式网络写一些东西(个人的/非商业的),我会用哪种doctype。

    我回答说: <!doctype html> 我被一种震惊、恐惧和惊讶的表情迎接,然后要求自己解释。

    在我看来,这是一个很好的选择,因为当前的浏览器(如FF、Opera、Safari)会查看它并将内容转换为标准模式,即使它们没有实现HTML5。如果我真的想利用html5元素,我可以使用一些javascript来创建对那些不被识别的标签的引用,例如 document.createElement('article'); )然后使用它们,就好像它们是DOM的本地部分一样。

    这真的是个糟糕的答案吗?你会回答什么?为什么?

    7 回复  |  直到 16 年前
        1
  •  6
  •   Oli Studholme    16 年前

    同时 <!doctype html> 非常好, WHAT-WG recommendation is to use <!DOCTYPE html> ,以防最终以XHTML L5的形式提供文档(在这种情况下,资本化变得很重要)。

    @David Dorward(还不能评论,所以_)我不同意你对HTML5的陈述。虽然浏览器目前对新事物(结构元素等)的支持很差,但HTML5是定义了错误处理的90%HTML4(最后)。浏览器解析html5与html4相同,因此假设您不使用结构元素( div 仍然有效)差异很小。validator.nu比W3__秷HTML4.1 Strict validator效果更好,开发速度更快,并且基于更详细的规范。

    我的建议是暂时忽略HTML5中的新内容,并将其视为更精确的HTML4规范。没有缺点,也有一些好处。

        2
  •  3
  •   miku    16 年前

    <!doctype html> 似乎很好。

    这个新的doctype有什么好处,尤其是,所有当前的浏览器(如,FF,Opera,Safari)都会查看它,并将内容转换为标准模式——即使它们没有实现HTML5。这意味着你可以从今天开始使用HTML5编写你的网页,并让它们持续很长时间。/ http://ejohn.org/blog/html5-doctype/

        3
  •  3
  •   hsivonen    16 年前

    这真的是个糟糕的答案吗?

    <!DOCTYPE html> 答案不错。

    你会回答什么?为什么?

    我本来可以给出我的答案的 choosing a doctype 一般来说,即使我使用 <!文档类型HTML> 为我的新个人出版物。

        5
  •  2
  •   Quentin    16 年前

    HTML5——实验性、不成熟的质量保证工具,其目标仍在移动。(如果您必须使用javascript(可能已关闭)来识别基本的结构元素,那么“eeep!”).

    XHTML-需要使用附录C Hacker才能使用Internet Explorer。DTD的表现力不如HTML4。

    HTML 4-成熟,测试良好,主要由浏览器支持,不需要黑客。XML工具无法解析(但很少有人在网页上内部使用这些工具)

    严格-一个好的核心。

    过渡性的-严格的加上那些(有一些例外)应该避免的东西。

    因此,HTML 4.01 Strict可能是最佳选择。当然也有例外,但我会把这作为出发点。

        6
  •  1
  •   Rob    16 年前

    我会和你一样回答,因为你是正确的,我不再使用任何其他的doctype为任何新的网页,因为在下面的几个好链接中给出了原因(包括安妮的回答,因为他为歌剧工作)。

        7
  •  1
  •   Egor Kloos    16 年前

    首先,我要说的是doctype不应该首先被引入。除了文本/HTML mimetype,您不能提供跨浏览器页面,也不能让我开始使用DTD。

    doctype所做的全部工作就是触发标准模式,并且只需要这样做,因为许多站点都不是按照标准构建的,更不用说W3C规范了。如果doctype只有一个目的,那么就简化它。HTML5就是这么做的。开发人员不应该让我们感到厌烦,假装doctype除了打开或关闭标准模式之外还有其他意义。

    “高级”开发人员应该继续他的工作,不要再为这些无用的东西而与人争论。