当我在一个元素上调用window.getComputedStyle()
并尝试获取一个属性,例如lineHeight,它可以同时具有措辞和数值时,是否有一种方法或不同的函数每次都会返回一个数值?
我的line-height
示例引用了normal
关键字。其他示例包括字体粗细和边框宽度。所有这些都使用关键字,但映射到数值。
答案 0 :(得分:0)
如果您指的是返回值可以包含px
或其他单位的事实,您可以使用parseInt
函数:
function getTheStyle(elem,property)
{
var theCSSprop = window.getComputedStyle(elem,null).getPropertyValue(property);
return parseInt(theCSSprop);
}
var element = document.getElementById('test');
alert(getTheStyle(element,"height"));
这里是fiddle。它不是返回100px
而是返回100
您可以像这样提取单位:
var str = "100em";
var matches = str.match(/([a-z]+)$/gi);
alert(matches);
编辑:
显然,normal
可以设置为"合理的"用户代理的值,并且是特定于字体的,规范建议它在1.0和1.2之间。所以你可能会be better off计算它的height
属性。
正常
告诉用户代理将使用的值设置为"合理的"基于价值 在元素的字体上。该值具有相同的含义 < number取代。我们建议使用正常的'正常值。介于1.0到1.2之间。 计算出的值是' normal'。
这里有一个深入的blog post。
答案 1 :(得分:0)
没有。因为并不总是有映射。
示例:
<div></div>
JS:
alert(getComputedStyle(document.body.children[0]).width);
// alerts "auto"
现在......什么数值会满足?