2013-03-18 31 views
8

你好,我有這樣的問題:是否有一個CSS文本重置?

problem

,你可以看到左手邊有是它是如何在Chrome中,右手邊的Firefox截圖。文字高度不一樣。 html的結構很簡單。它只是一個div,其中一個字段集中放置了一個h1標籤。周圍有一個1px的邊框。 h1標籤的高度爲20px,甚至行高爲20px。接下來是一個大小相同的h2標籤。問題在於文本高度。

example2

在Firefox似乎這比Chrome和Safari 1px的低。

我在eric meyers的最新版本中使用css reset。所以它不應該由此造成的。

如果有人有提示幫助我,那將會很棒。

非常感謝。

+0

看着你的照片自己的身高是相同的!正確的文本比左邊的文本低1個像素! – ITroubs 2013-03-18 17:30:29

+0

它是不同的文本,還是包含需要調整的文本的DOM元素? – vcsjones 2013-03-18 17:31:09

+0

@ITROUBS這是正確的。抱歉無法表達自己。我正是這個意思。 – bonny 2013-03-18 17:31:31

回答

2

缺省行高在不同瀏覽器中以及在不同字體大小的不同字體系列中有很大差異。設置一個明確的行高地址。

這是由於瀏覽器處理亞像素文本定位的差異。如果您的行高爲20像素,但字體大小爲15像素,則文本需要位於行框頂部2.5像素處。 Gecko實際上是這樣做的,WebKit只是把位置放到整數像素上。在某些情況下,這兩種方法會給出像素差異的答案。

在任何情況下,如果您真的需要這樣做,確保您的半前一個整數(即行高減去字體大小均勻)將使渲染更加一致。

試試這個:

div h1 { 
    -webkit-padding-before: 1px; 
} 

另一種可能的解決方案:

@media screen and (-webkit-min-device-pixel-ratio:0) { 
    div h1 { 
     line-height:19px; 
    } 
} 
+0

你好,我看了一下字體大小和行高。它的16-20 = -4所以它應該沒問題。我還添加了webkit-padding-before但不起作用。還是一樣:(謝謝。 – bonny 2013-03-18 18:11:35

+0

@bonny:你可以做一個小提琴來看現場的例子,做一些測試嗎? – 2013-03-18 19:07:21

+0

你好,請參閱我給你的答案的鏈接。謝謝 – bonny 2013-03-18 20:28:56

相關問題