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

pin*_*ong 4 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
}
Run Code Online (Sandbox Code Playgroud)

有没有解决这个问题?

Fau*_*ust 8

{position: relative;} 可能需要,如前所述,但您可能还有另一个问题:

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

这是一个"hasLayout"相关的IE漏洞,对它的彻底处理可以在" 有布局:负边缘漏洞 "中找到.

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

但要回答您的问题:对于解决方法,请参阅Get Me Layout中导致"hasLayout"的属性列表!请!,(如位置,高度和宽度 - yikes!)并确保它们都不适用于您的容器.