Fonts 垂直对齐的元素需要10像素以上的铬

Fonts 垂直对齐的元素需要10像素以上的铬,fonts,cross-browser,height,css,Fonts,Cross Browser,Height,Css,我用字体最幸运的家伙来试验一个奇怪的问题 我有一些按钮,一个具有宽度和高度的元素,对于垂直对齐文本,我使用相同的高度和线条高度。这很管用,这是一个css技巧,但我需要10像素以上的行高来在Chrome、FireFox和Safari中垂直对齐文本 在Chrome/FF/Safari中工作 .btn { height: 30px; line-height: 40px // need 10 px more to be vertically aligned! } 在IE9中工作+ .b

我用字体最幸运的家伙来试验一个奇怪的问题

我有一些按钮,一个具有宽度和高度的元素,对于垂直对齐文本,我使用相同的高度和线条高度。这很管用,这是一个css技巧,但我需要10像素以上的行高来在Chrome、FireFox和Safari中垂直对齐文本

在Chrome/FF/Safari中工作

.btn {
    height: 30px;
    line-height: 40px // need 10 px more to be vertically aligned!
}
在IE9中工作+

.btn {
    height: 30px;
    line-height: 30px // normally aligned
}
有人知道为什么会这样吗?有人做过类似的实验吗?有什么解决办法吗

很多

box-sizing: content-box;
应该用铬合金固定

.btn::-moz-focus-inner { margin-top: -5px; }
应该在firefox中修复它(设置适当的边距)

标准对于表单来说似乎特别糟糕,因此在这一领域,使用默认样式通常是明智的,这样可以使它们在所有浏览器中看起来都不错,而不会受到太多的攻击


另一个需要考虑的是使用重置(或归一化)样式表——这些尝试使所有浏览器的行为相同,并且可以帮助很多这样的挫折。这里有一个解决您的问题的常用方法:

解决方案是使用IE9的样式表,使用行高和高度的正常组合,这是对IE10+的一种攻击:

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {}
对于其他浏览器,使用10px的行高


在现代浏览器中,“最幸运的家伙”字体的使用就是这样呈现的。

您是否尝试过删除默认浏览器的样式?如果使用线条高度:1;,会发生什么;?线的高度还是不同的尺寸吗?你用不同的字体试过了吗?我的建议是使用padding top(因为众所周知,如果在px中设置了行高,那么在不同的浏览器中显示的行高会有所不同),但这实际上取决于您的需要。所有注释都已使用。我认为唯一的答案是使用“最幸运的家伙”这种特殊字体,因为任何其他普通字体都应该如此。唯一的解决方案是对IE9使用不同的样式表,对IE10+使用黑客攻击。谢谢你的时间!我们已经在使用normalize.css,但它并没有修复它。谢谢你的回答。现在意识到问题只存在于使用Mac Os时!使用windows时不需要额外的10个像素,无论使用哪种浏览器。