当div的style.display实际上是“块”时,为什么if语句返回false?
我正在使用 createreactapp 创建一个反应应用程序。我有这个 if 语句,用于检查 id 为 step1 的 div 的 css display 属性,如下所示:
const step1 = document.getElementById("step-1")
if (step1.style.display === 'block') {
console.log("true")
} else {
console.log('false')
}
div的CSS样式如下:
.step-1 {
display: block;
}
但是,当我检查控制台时,if 语句返回或 console.logs 'false' 当它应该是 'true' 时。
我以这种方式简化我的实际问题的原因是因为我试图根据检查 CSS 显示属性值的 if 语句的结果来潜在地隐藏 div。但是,它不起作用。不知道发生了什么。
至于 html,它是一个包含一些内容的简单 div:
<div className="step-1">
Some content ....
</div>
回答
if (step1.style.display === 'block') {正在检查 的内联样式step1,如果您只想确定它当前是否具有该样式,则需要执行
const styles = window.getComputedStyle(step1);
if (styles.getPropertyValue('display') === 'block') {
// do something
}
THE END
二维码