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

Posted

技术标签:

【中文标题】Internet Explorer 盒子模型 - 啥是偏移量?【英文标题】:Internet Explorer box model - what is offset?Internet Explorer 盒子模型 - 什么是偏移量? 【发布时间】:2012-03-05 02:32:00 【问题描述】:

我正在尝试调整一个站点以支持 IE 7。但是,我有一些元素向右偏移了 69 像素。我在 IE9 中进行测试,设置为像 IE7 一样呈现页面。当我打开开发者模式并检查元素时,我注意到在“margin”周围有一个名为“offset”的参数。

我以前从来没有听说过这个,谷歌搜索对我帮助不大——我只是设法找到了一些关于浮动偏移的东西,这是不一样的,但我认为它是为了消除一些问题怪癖模式?我怎样才能消除这个偏移参数?

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

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

已解决:

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

p 
    left:0px;

【问题讨论】:

查看这个 SO 答案:***.com/questions/4817745/… 未找到 在此服务器上未找到请求的 URL /2012/。此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。 对不起,那是我的开发环境——一年后我不会继续运行它;)但是 Kibria 链接的线程提供了一个非常好的解释,这与我自己发现的修复一致. 您可能应该将您的解决方案移至下面的答案。 【参考方案1】:

偏移量是元素从其原始位置移动的距离。当您使用lefttopbottom 和/或right定位 相对或绝对元素时,就会出现这种情况。以如下代码为例:

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

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

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

最后,这只是语义问题。无论我们称它为“偏移”还是“位置”,它仍然是一回事;它是与屏幕上原始位置的距离。

希望这会有所帮助。

【讨论】:

CSS2.1 也非正式地称它们为偏移量:w3.org/TR/CSS21/visuren.html#position-props 很好的发现,@BoltClock。我对 offset 的使用并不感到震惊;即使在与布局相关的 DOM 属性中,它也是一个相当常见的术语。令我震惊的是 Firefox,尽管它很棒,却没有提及它们。 我没有设置元素的位置,也没有设置自身和父级的边距,我也关闭了计算选项卡上的所有样式,但偏移量仍然在这里,并且元素被移动到 10px(在 chrome 中它不是移位,并在左侧设置位置:-10px 移位元素也在 chrome 中)【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

您可以尝试使用: position: -ms-device-fixed; 这个技巧对我有帮助。

【讨论】:

以上是关于Internet Explorer 盒子模型 - 啥是偏移量?的主要内容,如果未能解决你的问题,请参考以下文章

Internet Explorer 中 bootstrap 4 的 img-fluid 问题

在同一台计算机上运行 Internet Explorer 6、Internet Explorer 7 和 Internet Explorer 8

对于某些情况,如 Internet Explorer 特定的 CSS 或 Internet Explorer 特定的 JavaScript 代码,如何仅针对 Internet Explorer 10?

如何从 Internet Explorer 11 降级到 Internet Explorer 10?

为啥即使在模拟 Internet Explorer 8 文档模式时,Internet Explorer 11 也不支持条件注释?

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持