负边距 IE8 问题

Posted

技术标签:

【中文标题】负边距 IE8 问题【英文标题】:Negative Margins IE8 Issue 【发布时间】:2013-01-31 12:46:19 【问题描述】:

我正在尝试让我们的 Wordpress 博客在 IE8 及更低版本中显示得更好一些(它在 IE9、Firefox 和 Chrome 中运行良好)。一个大问题似乎是 IE8 缺乏对负边距的支持,因此在 IE8 中不存在帖子列和侧面小部件之间的差距。

网址:http://trekcore.com/blog

控制这种分离的 CSS 在这里:

#secondary 
float:right;
width:300px;
margin-right:-320px;

任何关于在 IE8 及以下解决此问题的条件 CSS 建议的帮助将不胜感激!

【问题讨论】:

【参考方案1】:

您正在使用 html5 元素,而 IE8 不理解它们并将忽略它们,并且您不能将 CSS 应用于它们,因为 IE8 不会知道它们存在。要修复 IE,您需要添加 html5shiv。这会将这些元素添加到 IE8 的 DOM 树中并将它们设置为块级别。

您可以编写自己的代码和 CSS 来做同样的事情,但 shiv 很方便。

【讨论】:

【参考方案2】:

您应该验证您的 html 标记,35 个错误和 11 个警告将无济于事。

同时,试试这个修复:

.negative-margin-element 
    zoom: 1; /* ie hax*/
    position: relative; /* ie forced behavious*/

【讨论】:

我已经处理了标记错误,剩下的 11 个是由于我们的 Disqus 插件造成的,与这个问题无关。不幸的是,您的建议似乎不起作用...

以上是关于负边距 IE8 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在约束布局上实现重叠/负边距?

margin 负边距 的知识点

负边距与相对定位

Firefox 无法识别负边距

奇怪的 Firefox 负边距

负边距