相对定位的内联元素的负边距有时会在IE7中剪辑字符

时间:2010-07-16 15:09:31

标签: css internet-explorer-7 haslayout

我的页面上有两个不同的上下文中有<a>个元素,有些是div(称为.container&gt; a),有些是子div(比如.container&gt; .section&gt; a)甚至还有一些在后代的div中(比如.container&gt; ...&gt; .section&gt; a)。我目前正在使用以下CSS对内联<a>元素进行一些格式化:

line-height:1.4;
position: relative;
left: 15px;
margin-left: -5px;

由于我目前使用border-bottom: 1px dotted #333设置链接样式,因此链接必须保留内联元素。问题是,.section中的链接行为有时与.container中的链接不同。后者在FF 3.6和IE7中看起来都很好。在IE7中,前者有第一个字符左右(负面边际内的任何内容)切断(我假设为负边距)。

我认为它可能是hasLayout的错误,所以我检查了三种情况的状态。它们如下:

案例1)对于.container&gt; a,.container hasLayout是真的。 (http://imgur.com/WJ3zM.png
案例2)对于.container&gt; .section&gt; a,.section hasLayout为false,.container hasLayout为true。 (http://imgur.com/4NHxj.png
案例3)对于.container&gt; ...&gt; .section&gt; a,.section hasLayout为false,除了其中一个插入容器(div,li和ul)hasLayout为true,并且.container hasLayout为true。 (http://imgur.com/WefBk.png

前两种情况在IE7中看起来很好,第三种情况有负边距错误。是什么导致这种情况发生,并且在如此有限的背景下?

2 个答案:

答案 0 :(得分:1)

显式设置z-index以覆盖同级,或者您可能需要在该相对定位元素的父元素上设置位置。 IE错误地将z-index为0应用于所有元素。它也可能是溢出的:隐藏的。

图像不如实例。

答案 1 :(得分:0)

可能是hasLayout。您是否尝试将案例3中的布局添加到.container? (对不起,你说它已经有了布局,我的意思是.section ...)

之一

根据我的评论和实验添加:

margin-left: -5px标记上的text-indent: -5px更改为a