显示主样式表中的样式检索差异
通过 JavaScript 的 Element.style 属性访问元素的样式时,请务必注意以下方面的潜在差异基于样式声明方式的行为。
在所描述的场景中,初始 display:none 样式在 DIV 元素上内联设置。但是,当初始样式移动到主样式表时,该元素被隐藏。有趣的是,访问元素的 style.display 属性返回一个空字符串,而通过内联样式访问同一属性则返回“none”。
此行为归因于 声明的样式 之间的区别和计算样式。声明的样式是内联或通过样式表显式分配给元素的样式。另一方面,计算样式代表元素的最终渲染样式,考虑了所有相关因素,包括继承和级联样式。
访问 Element.style 时,您仅获得声明的样式。要获取反映应用于元素的实际样式的计算样式,必须使用 window.getCompulatedStyle() 方法。该方法提供了元素样式的全面表示,包括受继承、级联和浏览器默认值影响的属性。
通过使用 getCompulatedStyle(),您可以可靠地检索元素的显示样式,即使它最初是通过主样式表隐藏的:
const element = document.getElementById('myDiv'); const display = getComputedStyle(element).getPropertyValue('display'); // display will now return 'none' or 'block', as appropriate
这种更正的方法可确保您访问元素的准确计算样式,无论其样式如何声明。
以上是为什么“Element.style”为内联样式表样式和主样式表样式返回不同的值?的详细内容。更多信息请关注PHP中文网其他相关文章!