jQuery:height()/ width()和“display:none”

前端之家收集整理的这篇文章主要介绍了jQuery:height()/ width()和“display:none”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我总是认为有显示的元素:none CSS样式返回0为height()和width()。

但在这个例子中:

HTML

<div id="target" style="display:none;">
a
</div>

CSS

alert($("#target").height());

他们不:http://jsfiddle.net/Gts6A/2/

怎么来的?我见过0回来很多次在过去。

解决方法

如果一个元素的 offsetWidth的0(jQuery考虑这个“隐藏”), checked here,那么它试图找出什么高度应该是。它 sets以下 properties对元素通过 jQuery.swap()在检查期间:

> position:“absolute”
> visibility:“hidden”
> display:“block”

然后它通过getWidthOrHeight(...)获得高度,如果必要,通过augmentWidthOrHeight(...)添加边框/填充,取决于框模型,并将所有上述属性恢复为之前的值。

所以基本上它采取的元素,显示它从文档的流程,获得高度,然后再次隐藏,所有之前的UI线程更新,所以你从来没有看到这种情况发生。它这样做所以.height()/.width()工作,即使是目前隐藏的元素,只要他们的父母是可见的…所以你可以运行.height()/.width(),而不做显示/隐藏技巧它在代码中做,它的处理在.height().width()

原文链接:https://www.f2er.com/jquery/184334.html

猜你在找的jQuery相关文章