【发布时间】:2020-12-18 07:35:29
【问题描述】:
我需要找出页面上元素的通过CSS定义的宽度;我不需要浏览器计算的实际宽度!
从内联样式属性中获取宽度值是没有问题的,但是当它在CSS文件中时如何获取宽度定义?
这是一个包含 3 个 div 元素的简短示例:
- 第一个 div 使用内联 CSS 宽度,我可以找到。
- 第二个 div 具有通过 CSS 定义的相对宽度 → 如何找到“50%”值?
- 第三个div没有宽度定义 → 怎么知道这个div没有没有宽度?
var box1 = document.getElementById('item1');
var box2 = document.getElementById('item2');
var box3 = document.getElementById('item3');
console.log('Box 1 width:', box1.style.width); // all good!
console.log('Box 2 width:', box2.style.width); // required result: "50%"
console.log('Box 3 width:', box3.style.width); // required result: "", "initial" or undefined
#item1 { width: 200px; }
#item2 { width: 50%; }
#item1, #item2, #item3 { background: #ccc; margin: 2px; padding: 5px }
<div id="item1" style="width: auto">Box 1</div>
<div id="item2">Box 2</div>
<div id="item3">Box 3</div>
【问题讨论】:
-
这些解决方案都有效。我不知道我怎么会想念他们...谢谢!
-
@Philipp 据我了解您的问题,此处发布的解决方案不起作用,因为它们显示元素宽度的实际值,而不是样式表中指定的原始值,然后用内联或继承样式
-
@chiliNUT,我提供的解决方案链接只是一个解决方案的提示。
-
@chiliNUT 你是对的。我在 jsbin 中测试了
getComputedStyle方法 - 结果看起来确实不错,但在实际的 JS 文件中,结果不是定义而是解析值。
标签: javascript css