如果未指定 Internet Explorer 兼容性视图会发生什么

What happens if Internet Explorer compatibility view not specified

在研究Internet Explorer的兼容性视图时, 我读过没有必要把

<meta http-equiv="X-UA-Compatible" content="IE=edge">

在 HTML 文档中,除非它用于 'Local Intranet'。 根据我看过的文章,

如果文档中不存在 X-UA-Compatible 元标记,浏览器将检查用户的兼容性视图设置。如果用户没有在视图列表中指定某个网站,浏览器会检查是否存在 <!DOCTYPE 声明,如果存在,它会自动呈现为最新的标准模式,否则呈现为 Quirks 模式。

如果是这样,我想知道在下面这些情况下会发生什么,

  1. 如果用户的浏览器非常旧(例如 IE 6 或 7)并且没有指定兼容性元标记。如果存在 DOCTYPE,它会呈现为最新的标准模式吗?那么浏览器如何处理最新的功能和 CSS 等?

  2. 我也读过 Quirk 模式,但 Quirk 模式到底是什么?它如何影响渲染?

  3. 如果在文档中指定了<meta http-equiv="X-UA-Compatible" content="IE=7">,它是否会在所有浏览器中呈现为 IE7,即使是最新的浏览器?

  1. If an user's browser is very old (eg. IE 6 or 7) and there is no compatibility meta tag specified. Will it render as latest Standard Mode if DOCTYPE is present? then how the browser can handle the latest functions and CSS etc ?

    是的,前提是 DOCTYPE 是触发标准模式的 DOCTYPE,例如一个用于包含所有必要位(public 标识符、系统标识符等)的 Strict DTD。标准模式在 Internet Explorer 6 及更高版本中可用。

    它会尽其所能处理它所理解的一切。

  2. I have read about Quirk Mode too, but what exactly is the Quirk Mode? How does it affect the rendering?

    这太宽泛,无法深入回答,但请参阅 http://jkorpela.fi/quirks-mode.html。简而言之,怪癖模式是一种兼容模式,专为非常古老(想想 20 岁)and/or 非常糟糕的网站而设计。

  3. If <meta http-equiv="X-UA-Compatible" content="IE=7"> is specified in the document, will it render as IE7 for ALL browsers even the browsers are the latest?

    是,最高支持 Internet Explorer 11。

Despite the word "edge"、X-UA-Compatible header 和元标记与 Microsoft Edge 完全无关,因此本主题中的任何内容均适用于该浏览器:

Developers who are new to X-UA-Compatible and reading this today may be confused by the use of the word "edge" — the X-UA-Compatible header was introduced in IE8, which is at least 6 years older than the new Windows 10 browser Microsoft Edge, and "edge" in this case refers to "the latest, 'cutting-edge' version of IE's rendering engine". It is not at all related to Microsoft Edge, and for obvious reasons you cannot actually tell IE to render as Microsoft Edge.