在IE中宽度与div的宽度不同于firefox

时间:2013-02-25 19:36:51

标签: html css layout quirks-mode

我正在处理一个向服务器发送异步帖子的用户控件。我希望用户控件淡出并显示“发送...”消息和gif工作时。为此,我试图绝对定位控件主div的半透明div。结果比实际情况要困难得多。我终于让它在Firefox中看起来没问题,但进入IE并发现控件的主要div甚至没有正确的宽度。

我希望总宽度为275px。所以在firefox中我称它为

width: 245px; margin 36px 15px 46px 15px;

所以宽度+边距= 275,这就是它渲染的方式。在IE中,浏览器从宽度中减去边距,因此总宽度为245,其中15px边距。好吧,我发现两个浏览器都在怪癖模式下运行,尽管......我认为......文档类型是:

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>

我的理解是这就是quirks模式应该做的事情,但是当IE和Firefox以不同的方式呈现它时,即使两者都处于怪癖模式,我也不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

如果您发布链接会更容易回复,但如果我的假设是正确的,您可以使用看起来像这样的元标记来强制IE模式

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

显然,根据您要使用的版本,它会有所不同。类似地,你可以强制退出兼容模式,进入怪癖模式等。我在Firefox中从未遇到过这个问题,所以不能说出来,但我想Mozilla会有类似的东西。

我认为通过设置盒子模型可以更好地解决您的问题。在有问题的块元素上使用此CSS类

#yourdiv { box-sizing: border-box }

这将有助于减轻不同浏览器渲染盒子模型的痛苦。关于box-sizing here的更多信息。

另外,不要忘记display: block,因为有时这会解决奇怪问题。