为什么 JavaScript 获取的块级元素宽度为空字符串?

为什么 JavaScript 获取的块级元素宽度为空字符串?

为什么块级元素的默认宽度不是内联样式中的100%

问题:

为何块级元素的默认宽度为100%,但在 JavaScript 中获取到的元素属性却为空字符串?

回答:

使用 JavaScript 获取的元素样式属性值并非内联样式的值,而是实际样式表中的内容。

HTML 中,块级元素的默认宽度为 100%。但是,这个值是 CSS 样式表的一部分,而不是内联样式。内联样式仅包括在 HTML 元素中显式设置的属性。

JavaScript 中,通过 element.style 属性获取的元素样式实际上是内联样式。因此,如果您未在 HTML 中设置 width 属性,则 element.style.width 将返回一个空字符串,即使实际样式表中设置了默认宽度。

例如,以下 HTML 代码定义了一个块级元素

<div>任意内容</div>

通过 CSS,块级元素默认具有 100% 的宽度:

div {
  width: 100%;
}

但是,通过 JavaScript 获取该元素的 style.width 属性会返回一个空字符串,因为没有显式设置 HTML 中的内联样式:

const div = document.querySelector('div');
console.log(div.style.width); // ""

要获取实际的样式表宽度值,可以使用 window.getComputedStyle() 方法:

console.log(window.getComputedStyle(div).width); // "100%"

以上就是为什么 JavaScript 获取的块级元素宽度为空字符串?的详细内容,更多请关注其它相关文章!