【问题标题】:Does DOCTYPE have any real effect? [duplicate]DOCTYPE有什么实际作用吗? [复制]
【发布时间】:2012-08-20 21:06:58
【问题描述】:

可能重复:
What's up, Doctype?

添加DOCTYPE 是一种最佳实践——HTML 验证器希望看到它。从理论上讲,它通过声明正在使用的 HTML 风格使文档更好。换句话说,这是你应该一直做的事情。

也就是说,我没有看到任何浏览器似乎使用它的情况。我在各种浏览器中尝试了多种 HTML 风格,但找不到一个示例,其中添加 DOCTYPE 时文档呈现不同。

有谁知道 DOCTYPE 在浏览器中有任何实际影响的案例吗?

此问题与What is DOCTYPE? 不同,What is DOCTYPE? 不要求提供 DOCTYPE 的存在在浏览器中具有可观察效果的具体示例。

【问题讨论】:

  • 使用 doctype 激活浏览器模式:hsivonen.iki.fi/doctype
  • @JukkaK.Korpela “什么是 DOCTYPE?”是一个与“是否存在使用 DOCTYPE 具有可观察效果的已知案例?”非常不同的问题。
  • @Raymond Hettinger,这个问题带有一个诙谐的标题“怎么了,Doctype”,但问题和答案很好地涵盖了“实际效果”问题。看看问题本身(除了标题)和答案。

标签: html doctype


【解决方案1】:

标签本身有很大的作用,主要是对 Internet Explorer,因为它使页面呈现的方式更接近规范(如果文档不以 doctype 声明开头,IE 进入 quirks 模式)。

在IE8或IE9中简单设置doctype fix bad rendering的情况很多。

话虽如此,现在不应该指定精确的文档类型,因为您可能遵循 HTML5 规范,您应该简单地设置

<!DOCTYPE html> 

(见http://webdesign.about.com/cs/doctype/a/aaquirksmode.htm

附加提示:

IE 并没有尽可能地遵循 HTML5 规范,除非你坚持使用互补的元标题:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

(见IE9 Float with Overflow:Hidden and Table Width 100% Not Displaying Properly

【讨论】:

  • 谢谢。我尝试在许多浏览器中查看带有和不带有 DOCTYPE 的文档,但不是 IE。这对 IE 来说似乎最重要,而对其他浏览器而言则无关紧要。
【解决方案2】:

是的,它确实有一个真正的效果:它改变了浏览器的渲染模式。大多数浏览器都有两种渲染模式:标准模式和怪癖模式。一些浏览器有第三种渲染模式,通常称为“几乎标准”。

  • 不添加 DOCTYPE 会强制浏览器进入 quirks 模式
  • 添加strict DOCTYPE 会使浏览器进入标准模式
  • 当您使用 transitional DOCTYPE 时,某些浏览器会进入“几乎标准”模式

当处于 quirks 模式时,浏览器会模仿自己的旧版本并以不同方式呈现框、对齐等。 “几乎标准”模式是标准模式,它对表格中的图像有不同的行为,以模仿我们过去在旧 HTML 中使用透明图像对齐表格中的内容。

您可以在这篇 Mozilla 开发者网络文章中了解更多信息:https://developer.mozilla.org/en-US/docs/Quirks_Mode_and_Standards_Mode?redirectlocale=en-US&redirectslug=Mozilla%27s_Quirks_Mode

【讨论】:

    猜你喜欢
    • 2014-10-08
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 2014-07-14
    • 2019-11-15
    • 1970-01-01
    相关资源
    最近更新 更多