我在頁面上有兩個不同的上下文中有<a>
元素,有些是在div中(稱它們爲.container> a),有些位於子div(如.container> .section> a),甚至還有一些在後續的div中(比如.container> ...> .section> a)。我目前做了一些格式上的直列<a>
元素與下面的CSS:相對定位內聯元素的負邊距有時在IE7中剪輯字符
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> 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爲false,除了其中一個插入容器(div,li和ul)hasLayout爲true,並且.container hasLayout是真的。 (http://imgur.com/WefBk.png)
前兩種情況在IE7中看起來不錯,第三種情況下有負餘量錯誤。有什麼可能導致這種情況發生,並且在這種有限的情況下?
對於案例2,我給了.section div佈局(在IE Developer Toolbar中使用縮放:1),並且實際上使bug在這種情況下也會出現。當我在案例3中給出.section佈局時,它沒有解決問題。 – burningstar4 2010-07-16 16:50:41
好吧,如果沒有別的,它確認'hasLayout'是你的問題。沒有代碼,我不可能進行調試。我不確定你爲什麼要這樣做,但爲什麼不設置'left:10px'並消除-5px的邊距(如果負邊距是導致錯誤的原因)? – ScottS 2010-07-16 16:59:56
因爲它隻影響第一行,所以頁邊距用於創建鏈接第二行的縮進(如果換行)。我將努力獲得一些精簡的代碼供您查看。 – burningstar4 2010-07-16 20:45:52