javascript - 为什么 element.style 在 JS 中总是返回空?

标签 javascript html css styles

当您在 css 中定义 display:block 时,element.style.display 总是返回空的。

console.log(document.getElementById('test').style.display)
#map {display: block;}
<div id="test">test</div>

但是如果你在该元素中设置样式,那么我们可以获得样式。显示详细信息。

    console.log(document.getElementById('test').style.display)
 <div style="display:none" id="test">test</div>

我不想要解决方案,因为我知道有很多解决方案:

getElementById().style.display does not work

Show/Hide google maps api does not work fine

我的问题不同。

Inline style is not a good way of coding. So we always assign the style in CSS. But why it's showing empty while provide style property in CSS instead of via the element? Is JavaScript particularly can't read the css style property?

你可以在下面查看,所有样式属性都是空的,即使我提供了 display: block; 对齐内容:居中;为什么?

console.log(document.getElementById('test').style)
#map {display: block;align-content:center;}
<div id="test">test</div>

最佳答案

element.style 返回 html 文档中使用的内联样式,由于样式不是直接在 html 中设置的,您将得到空值

您正在寻找的是 computedStyle,它将返回应用于元素的样式

console.log(window.getComputedStyle(document.getElementById('test')).display)
#map {
      display: block;
      align-content:center;
    }
<div id="test">test</div>

关于javascript - 为什么 element.style 在 JS 中总是返回空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50645188/

相关文章:

javascript - 如何使用 sinon 模拟非类成员函数

html - 链接容器的悬停在过渡期间显示为蓝色

css - 带菜单的 Bootstrap 轮播,显示事件类

css - 了解 svg 的 viewbox 属性

css - 使用chartjs,如何定义canvas的相对宽度和高度?

javascript - 如何在我的 Angular 代码中使用 angular-sortable-view?

javascript - Angular Directive(指令) Controller "this"返回未定义

javascript - 如果有人触摸输入框并将其留空,我如何使用 React Native 验证输入文本(已修改)

javascript - 我需要构建一个数组数组,在概念化时遇到问题

html - 自动化 HTML 创建