3

检查width属性是否足以确保我的 DOM 元素具有严格的正宽度,或者我是否还应该检查 css 规则(我只寻找具有固定像素数作为 CSS 规则的元素,没有 % 宽度)。

if (element.offsetWidth && element.offsetWidth > 0) // do stuff

或者

if ((element.offsetWidth && element.offsetWidth > 0)
     || (element.style && element.style.width
         && int(element.style.width.replace("px", ""), 10)>0 ) // do stuff

我宁愿选择第一个,但我想确保设置 CSS 规则也会设置width属性。

- - 编辑 - -

实际上offsetWidth似乎比width任何情况下都要好。我width改为offsetWidth.

它是否使第二个选项(检查 CSS)一文不值?

4

2 回答 2

3

element.offsetWidth应该足够了 - 不,不需要检查style元素

于 2013-08-23T15:19:22.330 回答
1

我认为如果您检查元素的计算样式

window.getComputedStyle(element).width

您可以放心,返回的值是正确的,并且比应用的 css 规则更准确(假设您有一个外部 css 文件宽度:0!important;,它将覆盖内联文件并且不会报告给您通过 el.style.width

于 2013-08-23T15:21:16.047 回答