2012-10-24 28 views
1
<!DOCTYPE html> 
<html> 
<body> 
    <span style="font-size:48px">abc<br></span> 
    <span style="font-size:6px">abc<br>abc</span> 
</body> 
</html> 

只有當我使用HTML5文檔類型時,IE9會在行的周圍放置額外的邊距。在<br>上添加font-size:0line-height:0不起作用。在IE9中使用HTML5文檔類型的行高

我該如何擺脫這些利潤率?

+0

使用CSS重置,如HTML5重置。 http://stackoverflow.com/questions/3485720/which-html5-reset-css-do-you-use-and-why – Chris

+0

這不是一個CSS重置的問題。 – alice

+0

你的問題不清楚。你在問爲什麼第二條線和第三條線之間有這麼多垂直空間? – Andrew

回答

4

不同的瀏覽器處理這個不同,但我不知道什麼是正確的方法。我的直覺感覺IE說得對,而Firefox卻錯了。 (現在無法與其他瀏覽器進行檢查,對不起。)

跨度中的<br>使得跨度高兩倍,而且由於它的字體大小爲48px,因此下半部分的基線爲48像素下從上半場開始。這就是第二跨度開始的地方;它繼續在相同的基線上。

如果你想避免這種情況,不對齊跨度爲基準,它們頂端對齊,通過把

<style>span {vertical-align:top}</style> 

在你的HTML(在頭)。這樣,第二個跨度中的文本將與行的頂部而不是基線齊平。

enter image description here

+0

感謝您的詳細解釋。你的解釋似乎是對的。但我認爲這對大多數人來說不是直覺行爲。 – alice

0

沒有我自己測試你的問題,我會問你有沒有嘗試給休息負利潤率?例如。

<br style="margin-top:-3px" /> 

我對你是爲什麼要在體內使用<span>直接不知道你遇到與<br>

問題,但我的其他問題哪條路?根據你的榜樣,我建議以下,而不是(雖然我還是不知道100%你想達到的目的):

<!DOCTYPE html> 
<html> 
<body> 
    <h1>abc</h1> 
    <p>abc</p> 
    <p>abc</p> 
</body> 
</html> 

然後在你的CSS,你可以給<h1><p>您的字體大小,線高度等你需要的。

h1 { 
    font-size:48px; 
    margin-bottom:0; 
} 

此外,font-size:6px;是真的很小,將很難閱讀任何人。偶爾某些瀏覽器或設備甚至不會呈現較小的字體大小,但相反,它們可以自動將其呈現爲font-size:10px;。我建議身體文字至少12px,最好稍大一點。

+0

負邊距不起作用。我故意給出了非常小和大的字體大小,以便您可以清楚地看到問題。當然,我可以編寫不同的標記來實現我想要的結果。但這真是一個基本的標記。我不能相信IE9不會正確顯示這個簡單的標記。 – alice