首页  >  文章  >  web前端  >  当在主样式表中设置显示时,为什么“myDiv.style.display”返回空字符串?

当在主样式表中设置显示时,为什么“myDiv.style.display”返回空字符串?

Linda Hamilton
Linda Hamilton原创
2024-11-06 19:31:02523浏览

Why Does `myDiv.style.display` Return an Empty String When Display Is Set in a Master Stylesheet?

掌握样式表和内联样式:了解显示属性行为

尝试使用 JavaScript 检索 DIV 元素的显示属性时,出现差异已被观察到。将显示设置为 HTML 元素内的无内联,myDiv.style.display 按预期返回“none”。但是,在主样式表中将显示定义为 none 会导致通过 myDiv.style.display 访问时出现空字符串。

此行为是根据 JavaScript 的操作方式来理解的。通过 JavaScript 访问 DOM 元素时,无法直接获取该元素的计算样式,因为它是在 CSS 文件中定义的。

解决方案:利用 getCompulatedStyle

来获取要计算样式并解决此差异,必须使用 getCompulatedStyle 属性或 Internet Explorer 的 currentStyle。此属性检索所需样式属性的计算值。

用于检索计算样式的 JavaScript 函数

function getStyle(id, name) {
  var element = document.getElementById(id);
  return element.currentStyle
    ? element.currentStyle[name]
    : window.getComputedStyle
    ? window.getComputedStyle(element, null).getPropertyValue(name)
    : null;
}

用法

利用 getStyle 检索显示属性:

var display = getStyle('myDiv', 'display');
alert(display); //will print 'none' or 'block' or 'inline' etc

以上是当在主样式表中设置显示时,为什么“myDiv.style.display”返回空字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn