为什么IE和Firefox为div返回不同的溢出维度?

时间:2009-08-26 03:25:11

标签: javascript css internet-explorer firefox dom

我有div,固定大小为100px。 scrollWidthscrollHeight如果div中的文字正常(没有字长到足以完全填满一行),则可以正常工作。但是,如果有任何文字的一个单词渲染比100px更宽,则会导致问题。

假设文本类似于“ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890”:那么Firefox返回错误的scrollWidth(在这种情况下为100,即使div溢出,也与实际宽度相同)。但是,IE正在给出正确的scrollWidth(在这种情况下为180)。

请帮助我在Firefox中获得正确的scrollWidth。对不起,如果我的问题看起来很模糊。

2 个答案:

答案 0 :(得分:5)

确保您的div设置了overflow:hiddenoverflow:auto样式。如果它是overflow:visible(默认值),那么FF将不会计算更大的scrollWidth,因为没有要滚动的内容(文本全部呈现)。

您在IE中观察到的行为实际上归因于overflow:visible的{​​{3}}。

答案 1 :(得分:0)

我遇到了同样的问题,觉得这是Firefox中的一个bug而不是IE,因为w3元素的滚动宽度是(padding-right + padding-left + content width),包括溢出。以下小提琴在IE 8和Chrome中给出正确的值,但在Firefox中它没有

http://jsfiddle.net/vdua/Fungh/16/