根据规范vertical-align
,属性百分比是相对于元素本身的line-height
属性。所以我做了一个测试,在Chrome开发工具中,计算值不像Firefox和IE11那样以像素为单位。这种行为很奇怪,我想知道这是一个bug还是?我知道Chrome中的所有其他值都是根据像素计算出来的,奇怪的是vertical-align
不是按像素计算的。
答案 0 :(得分:2)
propdef for vertical-align
确实表示指定为百分比的值必须基于行高度(即像素值)计算为绝对长度。取决于浏览器定义"计算值"应该与CSS definition一致,这可能是也可能不是本身的错误。
就此而言,所有三个浏览器似乎都错误地将line-height
计算为绝对值。规范说如果指定的值是数字而不是长度,那么the computed value is the same as the specified value;它不应解析为绝对长度,除非它被指定为(或百分比)。在您的情况下,line-height
在p
元素上指定1.5
为span
。这个相同的值应该由{{1}},然后继承,用于计算渲染线框所需的精确线高。结果行高是used value,而不是计算值。