Doctype和Quirk模式以及HTML 5

时间:2013-09-26 09:08:12

标签: css html5 google-chrome doctype quirks-mode

我有一段非常可怕的时光。我们有一个没有<DOCTYPE>的大型网站,当我用IE10运行它时,它进入怪癖模式,并且在一些CSS更改看起来没问题。只要我添加echo "<!DOCTYPE HTML>";

完整的网站看起来很糟糕,CSS看起来并不像它想象的那样。它将浏览器模式转换为IE10,将docmode转换为标准模式。有没有办法保持HTML 5的功能,但使用IE5 Quirks模式或只是Quirks模式,所以CSS看起来是正确的?

3 个答案:

答案 0 :(得分:1)

没有。怪癖模式的全部意义在于它是IE5的兼容模式。这意味着除了更改布局模式外,它还会关闭自IE5以来发明的大多数浏览器功能。

因此,直截了当的答案是否定的,你不能混合Quirks模式和HTML5。它不会发生。

然而,对你来说有一些好消息:从怪异模式切换到标准模式实际上比初看起来更容易。

您不必通过整个站点更改所有CSS以适应不同的盒子模型,因为标准模式确实具有CSS功能,允许您使用怪癖模式盒模型,同时仍保持标准模式。

只需将以下内容添加到CSS代码的顶部:

* {box-sizing:border-box;}

这将更改所有元素以使用怪癖模式框模型,但您的页面仍将处于标准模式。

这应该排除你一直存在的大部分(如果不是全部)布局问题。

希望有所帮助。

答案 1 :(得分:0)

不,没有。包含新功能的现代引擎和用于模拟古老,虚拟浏览器的引擎是独立的实体,您不能混合和匹配它们的一部分。

答案 2 :(得分:0)

对于IE以外的浏览器,您可以添加HTML5中引入的标记和属性,而不使用任何<!DOCTYPE>。该页面将不符合HTML5,但这只是一种形式。浏览器完成他们的工作,解释标签和属性,因为它们已被编程。浏览器中没有“HTML5模式”,您需要使用<!DOCTYPE>或其他方式触发。就试一试吧。如<input type=email><details>这样的HTML5新奇内容,如果浏/ p>

使用标记验证器时会遇到困难,但这是一个不同的问题。

Quirks Mode是一个真正的混乱,有数十个无证件和记录不良的现象。如果页面在Quirks模式下工作,然后您使浏览器在标准模式下呈现它,那么任何事情都可能发生,从无效到完全灾难。所以这种变化通常是毫无意义的风险。继续使用Quirks Mode开发使用它的旧页面,并创建新页面以在标准模式下工作(并且可能符合HTML5)。

Quirks模式会影响样式并在某种程度上影响脚本。它略微影响了一些旧的HTML属性的解释。但在大多数浏览器中,并不是新HTML5功能的工作方式。

然而,IE尤其古怪。在IE 10上,以上似乎适用。在IE 11预览版中,报告了偏差。在IE 9中,Quirks模式不支持一些原本支持的HTML5新颖性,例如<!DOCTYPE>元素。因此,如果您打算将实际使用新的HTML5功能添加到现在可在Quirks模式下工作的旧页面,则可能需要先考虑将页面更改为标准模式。根据Quirks功能的影响,这可能最好通过重写页面来完成,或者可能“仅”重新设计使用CSS以符合CSS规范。

[回答纠正于2013年10月15日。]