2013-03-18 119 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

相关问题