我的问题是在firefox和chrome上,我的网站在怪癖模式下看起来很好,但在IE中则不行。我意识到我应该添加到页面的开头并从那里开始 - 但是当我这样做时,网站在所有浏览器中看起来都一样,但不是我想要的。
这是我的网站DOCTYPE,这是我的网站在怪癖mode这是我想要的样子(在chrome / firefox中)
这是我的CSS的问题吗?我已经验证了它,没有发现任何错误!
答案 0 :(得分:4)
问题是(正如你在标签中正确猜到的那样)一种叫做Quirks Mode的东西。
如果您编写的网站没有doctype,浏览器将以Quirks模式呈现它。这基本上是一种模拟模式,浏览器假装是旧浏览器,以便与旧网站兼容。
没有简单的方法:如果你设计的网站在怪癖模式下看起来很好,那么你做错了,你将不得不修复它。
让它处于怪癖模式不是一种选择,因为IE在这种模式下呈现的方式与其他人不同;无论是否有doctype,您的网站都会在其他浏览器中显示出来。
抱歉带来坏消息。
怪癖模式和标准模式之间的主要区别是“盒子模型”。这定义了如何根据框宽和高度处理边距和边框。在怪癖模式下,边距和边框位于框内,因此width
是框占据的整个空间,而在标准模式下,边框和边框将添加到框外,因此框所占空间总计最多的是width
加上margin
和border
。这显然对页面布局有很大影响。还有其他差异,但那会给你带来最多问题。
有一项名为'box-sizing'的CSS功能。这允许您在保持标准模式的同时在上述两种模式之间切换盒子模型。
这实际上是一个完美的解决方案:您只需将box-sizing:border-box;
放入CSS的每个元素(使用*
选择器),问题就解决了。
不幸的是,box-sizing
仅在更新版本的IE中受支持。如果你需要支持IE6或IE7,那你就不走运了。如果您的最低浏览器是IE8,那么您可以使用它,这将解决您的大多数怪癖模式布局问题。不是全部,而是大部分。
希望有所帮助。