为什么 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%"
登录后复制

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容