IE9 CSS兼容性和DOCTYPE声明



我得到了这个页面在Chrome中可以正常工作,但在IE9中不行。

我尝试为IE9页面制作一个新的css,在html代码中使用条件注释。没关系。

但后来我试着包括一个doctype语句…结果如下:

  • 当我在html文件中包含doctype时,一切都乱了(即使在Chrome中),但一旦我删除它,页面看起来很棒Chrome和IE9.
  • 如果我重新启动IE9(或删除临时数据)页面不工作一次。

我真的不知道发生了什么。

正如已经说过的,始终使用doctype。没有它,IE就会以怪癖模式呈现,你得到的结果将与你在其他浏览器中得到的结果大不相同。

如果你的代码用doctype看起来很糟糕,那么我建议你的代码一开始就很糟糕。您已经将站点设计为quirkmode,这将给您提供看似随机的结果(它们不是,但看起来是这样)。

你将不得不重新设计你的网站使用标准模式。那么它在所有现代浏览器中看起来都是相同的(或相似的)。

首先,您应该始终包含doctype。它会告诉浏览器你要遵守的规则。

如果你省略了一个doctype, IE会认为你的标记是古老的,并触发Quirks模式,这实际上是IE 5.5的呈现。这样做的副作用包括IE盒子模型错误。

在不看到任何标记的情况下,我强烈建议使用W3C验证器验证标记和CSS。很多时候,Chrome和FireFox更善于猜测可疑标记的含义,而IE则不然。

首先,如果不查看HTML/CSS,很难找到解决方案。一般来说,你不需要一个单独的CSS文件…

我也建议你尝试使用HTML5样板,以帮助尽量减少浏览器的不一致。这应该可以解决大多数问题,除非是CSS中的错误。

最新更新