为什么IE 7中的负边距不起作用?

时间:2011-04-04 16:56:08

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

我在链接上声明了一个负余量,但它在IE 7上不起作用。

#search a {
    color: #E5E5E5;
    text-decoration: none;
    font-weight: bold;
    float:right;
    margin-top:-20px; // this is not working on ie, only mozilla
}

这是否有解决方法?

3 个答案:

答案 0 :(得分:8)

如前所述,可能需要

{position: relative;},但您可能还有其他问题:

一般情况下,如果负边距是用于将元素拉出的技术,IE7将不会绘制突出于其父容器外部的元素的一部分(尽管它会考虑其他影响突出的方法,如{{ 1}})。

这是一个“hasLayout”相关的IE错误,可以在“Has Layout: Negative Margin Bug找到对它的彻底处理。

正如上面引用的参考说明,有一些方法可以诱骗IE7绘制元素的一部分,其边缘突出于其父元素之外,但它涉及“......不使用任何给出元素布局的属性“。这可能会限制您想要使用的其他设计技术,并且还有其他副作用(再次参见引用的参考文献)。

但是要回答你的问题:对于解决方法,请参阅在Get Me Layout! Please!引发“hasLayout”的属性列表(如位置,高度和宽度 - yikes!)并确保它们都不会被应用到你的容器。

答案 1 :(得分:1)

设定位置:相对; 这是使用负边距http://www.smashingmagazine.com/2009/07/27/the-definitive-guide-to-using-negative-margins/

的良好指南

答案 2 :(得分:1)

确保您设置了有效的Doctype。 Quirks模式不允许负边距。