私<a>
のページには 2 つの異なるコンテキストの要素があります。一部は div にあり (.container > a と呼びます)、一部は子 div にあり (.container > .section > a のように)、さらにはさらに子孫の div にあるものもあります (のように) .container > ... > .section > a)。<a>
現在、次の CSS を使用してインライン要素の書式設定を行っています。
line-height:1.4;
position: relative;
left: 15px;
margin-left: -5px;
現在、リンクを でスタイリングしてborder-bottom: 1px dotted #333
いるため、リンクはインライン要素のままにする必要があります。問題は、.section 内のリンクが .container 内のものとは異なる動作をすることがあるということです。後者は、FF 3.6 と IE7 の両方で問題なく表示されます。前者は、最初の文字かそこら (負のマージンの量の内側にあるものは何でも) IE7 で切り取られています (負のマージンで想定しています)。
hasLayoutのバグかもしれないと思ったので、3件の状況を確認してみました。それらは次のとおりです。
ケース 1) .container > a の場合、.container hasLayout は true です。( 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 は false で、介在するコンテナー (div、li、および ul) の 1 つを除くすべてhasLayout が true で、.container hasLayout が true です。( http://imgur.com/WefBk.png )
最初の 2 つのケースは IE7 では問題ないように見えますが、3 番目のケースには負のマージンのバグがあります。このような限られた状況で、何がこれを引き起こしているのでしょうか?