0

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

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

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

我认为可能是hasLayout的一个bug,所以我检查了三个案例的状态。它们如下:

案例 1) 对于 .container > a,.container hasLayout 为真。( http://imgur.com/WJ3zM.png )
案例 2) 对于 .container > .section > a,.section hasLayout 为 false,.container hasLayout 为 true。( http://imgur.com/4NHxj.png )
案例 3) 对于 .container > ... > .section > a,.section hasLayout 是假的,除了一个中间容器(divs、li 和 ul) hasLayout 为真,.container hasLayout 为真。( http://imgur.com/WefBk.png )

前两种情况在 IE7 中看起来很好,第三种情况有负边距错误。什么可能导致这种情况发生,在这样一个有限的背景下?

4

2 回答 2

1

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

图像不如现场示例那么好。

于 2010-07-16T15:13:44.987 回答
0

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

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

在标签上更改margin-left: -5px为。text-indent: -5pxa

于 2010-07-16T15:15:03.347 回答