我<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 中看起来很好,第三种情况有负边距错误。什么可能导致这种情况发生,在这样一个有限的背景下?