我正在尝试调整网站以支持IE 7.但是我有一些元素,它们向右偏移了69px。我在IE9中进行测试,设置为将页面呈现为IE7。当我打开开发人员模式并检查元素时,我注意到“边缘”周围有一个名为“偏移”的参数。
我之前从未听说过这一点,谷歌搜索并没有帮助我 - 我只是设法找到一些浮动偏移,这是不一样的,但我认为它是在那里消除一些问题怪癖模式?如何消除此偏移参数?
显然我设置了IE-7特定的样式表,您可以通过此链接访问我的测试环境来自行测试问题:
http://suitable.amok-adhoc.com/2012/
解决:
找到了解决方案 - 非常简单。只需要明确地声明这样的位置(尽管它是从所有其他浏览器中的父元素继承的,IE添加了一个边距并称之为“offset”,这样做会被覆盖):
p {
left:0px;
}
答案 0 :(得分:32)
偏移量是元素从其原始位置移动的距离。当您使用left
,top
,bottom
和/或right
值定位元素时,可以看到这种情况。以下面的代码为例:
#header {
top: 3em;
left: 3em;
position: relative;
}
如果我们在Internet Explorer 10中检查此元素,我们会看到您提到的偏移。 em
值已转换为像素,但效果仍然可见。请注意,我们在Chrome开发者工具(也在Opera中)中看到类似的内容,只是将其标记为“位置”:
奇怪的是,Firefox甚至没有通过他们的插图传达偏移/位置:
最后,这是一个单纯的语义问题。无论我们称之为“抵消”还是“定位”,它仍然是一回事;这是它与屏幕上原始位置的距离。
希望这有帮助。
答案 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;
这招可以帮助我。