你需要 的,而你得到元素的尺寸是一个非常短暂的瞬间。在通用解决方案中,通常遍历所有祖先并使其可见。然后将它们的display
值重新设置为原始值。
当然,还有性能方面的问题。
我们认为在执行的Prototype.js这种做法,但结束了getWidth
和getHeight
,而无需遍历祖先。
替代解决方案的问题-例如将元素从“隐藏”父级中移除-一旦元素脱离其“常规”层次结构,某些样式可能不再适用于该元素。如果您具有这样的结构:
<div class="foo" style="display:none;">
<div class="bar">...</div>
</div>
和这些规则:
.bar { width: 10em; }
.foo .bar { width: 15em; }
那么将元素从其父元素中移除实际上会导致尺寸错误。