文档只是说selection.style返回"当前计算值"。
我尝试使用rem
在css中指定元素的字体大小,而style('font-size')
似乎在px中返回相应的大小(例如'10.2px'
)。
这是一种我可以依赖浏览器的行为,无论css中指定了font-size的单位是什么?
答案 0 :(得分:3)
要回答您的问题,请查看selection.style
源代码:
export default function(name, value, priority) {
var node;
return arguments.length > 1
? this.each((value == null
? styleRemove : typeof value === "function"
? styleFunction
: styleConstant)(name, value, priority == null ? "" : priority))
: defaultView(node = this.node())
.getComputedStyle(node, null)
.getPropertyValue(name);
}
如您所见,它确实使用getComputedStyle
。
阅读有关getComputedStyle的MDN文档,我们可以读到:
getComputedStyle返回的值称为已解析值。这些通常与CSS 2.1计算值相同,但对于某些较旧的属性(如宽度,高度或填充),它们是使用的值。
然后,跳转到关于computed values的文档,我们可以读到:
达到属性计算值所需的计算通常涉及将相对值(例如以em单位或百分比表示的那些)转换为绝对值。 (强调我的)
因此,由于Chrome,Edge,Firefox,Internet Explorer,Opera和Safari支持(基本)getComputedStyle
,我们可以说您问题的答案("这是一个我可以依赖跨浏览器的行为?" )似乎是。