为什么使用 JavaScript 获取块级元素的宽度时会返回空字符串?

为什么使用 JavaScript 获取块级元素的宽度时会返回空字符串?

块级元素宽度为什么显示空字符串

html 中,块级元素的宽度默认设置为 100%。然而,使用 JavaScript 获取块级元素的样式属性时,返回的宽度却是空字符串。这是为什么呢?

原因:内联样式优先

JavaScript 中,通过 element.style 属性获取的元素样式属性实际上是元素的内联样式。内联样式是在 HTML 元素的 style 属性中指定的样式,优先级高于外部样式表

例如,以下代码创建了一个没有任何样式的块级元素:

立即学习Java免费学习笔记(深入)”;

<div>我是块级元素</div>
登录后复制

此时,块级元素的内联样式为空,因此 JavaScript 获取到的宽度属性也为空字符串

const div = document.querySelector("div"); console.log(div.style.width); // 输出:""
登录后复制

解决办法

要获取块级元素的默认宽度,需要获取元素的计算样式。计算样式是浏览器根据所有样式规则计算出的最终样式,包括内联样式、外部样式表和浏览器默认样式。

可以使用 window.getComputedStyle() 方法获取计算样式:

const div = document.querySelector("div"); const width = window.getComputedStyle(div).width; console.log(width); // 输出:"100%"
登录后复制

通过 window.getComputedStyle() 方法获取的 width 属性将返回块级元素的默认宽度 “100%”。

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

请登录后发表评论

    暂无评论内容