2012-02-13 33 views
27

我正在尝试改编一个网站来支持IE 7.我有一些元素,但是,它们被右移69px。我在IE9中测试,设置为将页面渲染为IE7。当我打开开发人员模式并检查元素时,我注意到围绕“边距”的是一个名为“offset”的参数。Internet Explorer框模型 - 什么是抵消?

我从来没有听说过这个,谷歌搜索也没有帮助我多 - 我只是设法找到一些关于浮动抵消,这是不一样的,但我认为它是在那里消除一些问题怪癖模式?我怎样才能消除这个偏移参数?

很显然,我有一个IE-7特定样式设置,你可以去我的测试环境这个环节上测试自己的问题:

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

解决:

找到了解决办法 - 这很简单。只是要明确宣布这样的位置(虽然它是从父元素中的所有其他浏览器IE增加了保证金,并把它称为“偏移”,这是做这个覆盖继承):

p { 
    left:0px; 
} 
+1

看到这个苏答案:http://stackoverflow.com/questions/4817745/how-do-i-get-rid-of-an-elements-offset-using-css – Kibria 2012-10-08 05:37:18

+0

未找到 请求的URL/2012 /在此服务器上找不到。 此外,尝试使用ErrorDocument处理请求时遇到404未找到错误。 – 2013-04-08 17:31:16

+0

对不起,那是我的开发环境 - 一年后我没有保持这种运行;)但Kibria链接提供了一个非常好的解释,这与我发现自己的修复一致。 – funkylaundry 2013-04-12 12:22:13

回答

26

偏移量是元素从其原始位置移动的距离。当您的位置元素与left,top,bottom和/或right的值相对或绝对时可见。以下面的代码为例:

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

如果我们考察在Internet Explorer 10这个元素,我们看到了偏移你提。 em值已转换为像素,但效果仍然可见。需要注意的是,我们看到在Chrome开发者工具相似(也Opera)的东西,只有它被标记为“位置”,而不是:

enter image description hereenter image description here

奇怪的是,火狐甚至没有出现沟通的偏移/通过它们的图示位置:

enter image description here

在端这仅仅是语义的一个问题。无论我们称之为“抵消”还是“立场”,它仍然是一回事;这是它在屏幕上的原始位置的距离。

希望这会有所帮助。

+4

CSS2.1非正式地称它们为偏移量,顺便说一下:http://www.w3.org/TR/CSS21/visuren.html#position-props – BoltClock 2013-04-12 15:18:18

+1

很好找,@BoltClock。我不会因使用* offset *而感到震惊。即使在与布局相关的DOM属性中,它也是一个相当常见的术语。我大多感到震惊的是,Firefox并没有提及它们。 – Sampson 2013-04-12 15:28:16

+0

我还没有设置元素的位置,也没有自我和父母的边距,我也关闭了计算选项卡上的所有样式,但偏移量仍然在这里,元素被移动到10px (在铬中它没有移位,并且设置位置离开:在chrome中也有-10px的切换元素) – devi 2017-10-27 08:37:03

1

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

0

我有类似的问题,我的标题菜单宽度显示不正确(出现在收缩宽度),经过一些调试后,我意识到我已经添加了rem聚填充,这是造成我的问题。我也使用meta(http-equiv="x-ua-compatible" content="IE=Edge,chrome=1")

删除rem-polyfil JS文件后,它开始为我正常工作。

0

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

相关问题