Internet Explorer盒子模型 - 什么是偏移量?

时间:2012-02-13 17:11:41

标签: css internet-explorer internet-explorer-7 offset

我正在尝试调整网站以支持IE 7.但是我有一些元素,它们向右偏移了69px。我在IE9中进行测试,设置为将页面呈现为IE7。当我打开开发人员模式并检查元素时,我注意到“边缘”周围有一个名为“偏移”的参数。

我之前从未听说过这一点,谷歌搜索并没有帮助我 - 我只是设法找到一些浮动偏移,这是不一样的,但我认为它是在那里消除一些问题怪癖模式?如何消除此偏移参数?

显然我设置了IE-7特定的样式表,您可以通过此链接访问我的测试环境来自行测试问题:

http://suitable.amok-adhoc.com/2012/

解决:

找到了解决方案 - 非常简单。只需要明确地声明这样的位置(尽管它是从所有其他浏览器中的父元素继承的,IE添加了一个边距并称之为“offset”,这样做会被覆盖):

p {
    left:0px;
}

4 个答案:

答案 0 :(得分:32)

偏移量是元素从其原始位置移动的距离。当您使用lefttopbottom和/或right定位元素时,可以看到这种情况。以下面的代码为例:

#header {
    top: 3em;
    left: 3em;
    position: relative;
}

如果我们在Internet Explorer 10中检查此元素,我们会看到您提到的偏移em值已转换为像素,但效果仍然可见。请注意,我们在Chrome开发者工具(也在Opera中)中看到类似的内容,只是将其标记为“位置”:

enter image description here enter image description here

奇怪的是,Firefox甚至没有通过他们的插图传达偏移/位置:

enter image description here

最后,这是一个单纯的语义问题。无论我们称之为“抵消”还是“定位”,它仍然是一回事;这是它与屏幕上原始位置的距离。

希望这有帮助。

答案 1 :(得分:2)

这看起来很奇怪,但您可以尝试在vertical-align: top中为输入设置CSS。这至少在IE8中修复了它。

答案 2 :(得分:0)

我有类似的问题,我的标题菜单宽度没有正确显示(出现在缩小的宽度),经过一些调试我意识到我添加了rem Poly-fill,这对我来说是个问题。我也在使用meta(http-equiv="x-ua-compatible" content="IE=Edge,chrome=1")

删除rem-polyfil JS文件后,它开始正常运行。

答案 3 :(得分:0)

您可以尝试使用: position: -ms-device-fixed; 这招可以帮助我。