【问题标题】:Google Chrome computed value weirdness谷歌浏览器计算值异常
【发布时间】:2014-10-03 09:21:25
【问题描述】:

根据规范,vertical-align 属性的百分比相对于元素本身的line-height 属性。所以我做了一个测试,在 Chrome 开发工具中,计算值不像 Firefox 和 IE11 那样以像素为单位。这种行为很奇怪,我想知道这是一个错误还是?我知道 Chrome 中的所有其他值都是按像素计算的,很奇怪 vertical-align 没有按像素计算。

这里是测试http://jsfiddle.net/blaja/r5m2yc7e/

【问题讨论】:

    标签: css google-chrome google-chrome-devtools


    【解决方案1】:

    propdef for vertical-align 确实表示,指定为百分比的值必须根据行高计算为绝对长度,即像素值。根据浏览器对“计算值”的定义是否应该与CSS definition 一致,这可能是也可能不是错误本身

    就此而言,所有三个浏览器似乎都错误地将line-height 计算为绝对值。规范说如果指定的值是一个数字,而不是一个长度,那么the computed value is the same as the specified value;除非指定为绝对长度(或百分比),否则不应解析为绝对长度。在您的情况下,line-heightp 元素上指定为1.5span 应该继承相同的值,then 用于计算渲染行框所需的确切行高。结果行高是used value,而不是计算值

    【讨论】:

    • 请注意 line-height 的解析值(getComputedStyle() 返回的值)是使用值,而不是计算值。浏览器开发工具显示的值可能试图与之保持一致。 Chrome 的垂直对齐计算值看起来确实像一个错误。
    • 我向 Tab Atkins(规范作者)发送了一个关于此问题的问题并等待答案,但这里肯定发生了一些奇怪的事情。为什么 chrome 与 IE 和 FF 关于垂直对齐属性不对齐我不知道,但我认为这是一个错误,或者可能不是!?我又做了一个演示,它证实了我所说的一切。 jsfiddle.net/blaja/dzp7Lcfv/2
    • 我刚收到来自 Tab 的电子邮件,他说这看起来像一个错误。我刚刚举报了。
    • 这里是报告code.google.com/p/chromium/issues/detail?id=403796,如果您有兴趣。
    猜你喜欢
    • 2018-07-15
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 2011-11-28
    • 2010-09-07
    • 1970-01-01
    相关资源
    最近更新 更多