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



好的,所以当我得到一个使用 jQuery 存储为百分比的 CSS 属性时.css()它与它的像素值一起返回。实际上,这对我的目的非常有用,我可以使用它...但是,这是我现在和将来在所有现代浏览器中一致看到的预期结果吗?

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

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

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

来自 jQuery doc

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

是的,这是预期的结果

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

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

这包含在蓬勃发展的CSSOM规范中。通常,是的,只要 display 属性未设置为 none则可以依赖像素值。上述第9节有细节;对于大多数您希望数字(width等(的属性,它说:

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

。其中"解析值"是指(对于这些属性(像素数而不是相对数量(百分比和类似值(,后者将是"计算值"("计算",如"考虑所有样式规则"(。

支持这是(新(指定行为的情况,当在各种情况下返回非像素值时,错误已被报告和接受(在WebKit,jQuery,YUI中(。

最新更新