CSS单位不一致

时间:2014-02-28 23:00:36

标签: css google-chrome

假设100% = 16px = 1em = 1(适用于无单位line-height)我认为162.5% = {{1 }} = 26px = 1.625em

当我将1.625设置为line-height1.6251.625em时,它在Chrome中完全相同,但当我将其设置为26px时,它并不完全相同(在Firefox中它总是可以的。)

有谁为什么会这样?我真的试图找到一些错误而我不能。我发现这个表格的值不一致(例如他们说162.5%160%而不是26px,但为什么?):http://www.getallfix.com/2011/11/convert-empxpt-and-in-css/

演示:http://jsfiddle.net/tr9Nr/1/(必须在Chrome或IE11中打开,在Firefox中一直都可以)

1 个答案:

答案 0 :(得分:1)

您的计算是正确的:100% = 16px = 1em = 1

您看到的不一致之处在于像Chrome这样的webkit浏览器如何呈现小数百分比值。在你的情况下,webkit看起来是行高度百分比而不是舍入它,所以162.5%总是呈现为162%;见jsfiddle

我不能说这是一个错误,因为子像素渲染标准并没有真正明确定义......这就是webkit如何做到的。

您发布的示例图表似乎是围绕像素值。

您可以放心,因为您的布局永远不会超过几个像素。此外,跨浏览器像素完美布局仅仅是梦想的乌托邦理想。 : - /