JQuery .css()返回像素而不是百分比

时间:2013-12-15 08:22:20

标签: javascript jquery html css

好吧,所以当我得到一个使用JQuery .css()存储为百分比的CSS属性时,会返回其像素值。这对我的目的来说非常棒,我可以使用它...它是否是我现在和将来在所有现代浏览器中始终如一的预期结果?

我似乎无法在这里找到太多信息。谢谢!

3 个答案:

答案 0 :(得分:0)

来自jQuery doc

.css()方法是从第一个匹配元素获取样式属性的便捷方法,尤其是考虑到浏览器访问大多数这些属性的不同方式( getComputedStyle()方法与Internet Explorer中的 currentStyle runtimeStyle 属性)以及浏览器用于某些属性的不同术语。

是的,它是预期的结果

如果你想找到实际的样式值,你可以这样做,

var topValue = $("#mydiv")[0].style.top

答案 1 :(得分:0)

是的,您现在和将来都可以在所有浏览器中看到此行为。因为这是浏览器呈现css property的方式。脚本语言将在从浏览器解释后从DOM获取这些详细信息。所以这是自然行为,而且不会改变。

此外,在呈现过程中,Percentages将根据pixels转换为element's parent。因此,在检索时,它不会以百分比显示css属性。如果您需要它,您必须手动计算它。

答案 2 :(得分:0)

新兴CSSOM specification涵盖了这一点。通常,是的,您可以依赖像素值提供 display属性未设置为noneSection 9 of the above有详细信息;对于大多数属性,你期望有一个数字(width等),它说:

  

如果属性适用于元素或伪元素,并且'display'属性的解析值不是'none',则解析的值是使用的值。否则,已解析的值是计算值。

...其中“已解决的值”表示(对于这些属性)一些像素而不是相对数量(百分比和类似),这将是“计算值”(“计算”,如“采取所有样式”规则考虑“)。

支持这种(新)指定行为的情况,当在各种情况下返回非像素值时,已报告并接受错误(WebKitjQuery中{ {3}})。