是否有推荐的方法来确定 DIV 可以设置的最大高度并在每个浏览器中保持可见?这似乎没有在任何地方记录,并且是高度特定于实现的。
例如,看下面的测试脚本:
这是一个简单的测试,用于在元素的相应 clientHeight
变为 0 之前找到您可以设置 DIV 样式高度属性的最大值。您可以通过单击“查找最大值”然后递增来确认这一点将找到的高度加 1,然后单击“设置高度”。
一些例子(Win7/64):
Chrome (14.0) : 134,217,726 px
Safari (5.1) : 134,217,726 px
IE (9.0) : 10,737,418 px
FF (7.0.1) : 17,895,697 px
我猜 WebKit 产生相同的结果并不奇怪 - 更令人惊讶的是 IE 和 FF 如此不同。
有没有更好的方法?你在 32 位系统中得到不同的结果吗?
--编辑:更新 fiddle 以停止 Opera 的 10,000,000,000(并更快到达那里)。这是很多像素。
最佳答案
这是您的代码,已修改为使用二进制搜索(因此速度更快)。
http://jsfiddle.net/thai/zkuGv/4/
它从 1 像素开始,然后将其大小加倍,直到达到最大值(我使用 253,这是可以在 JavaScript 中存储而不会丢失精度的最大整数,并且会使二进制搜索 buggy ),或者 div 折叠为零像素。
假设我们将 div 设置为 h 大小,然后它消失了,那么最大大小必须在 h/2 和 h 之间。我们从那里二进制搜索高度 h ,当设置为高度 h 时不会使 div 消失,但当设置为 h+ 时会消失1.
那么对于Opera我们可以得出一个结论:2147483583像素。
关于javascript - 确定最大可能的 DIV 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7719273/