用于获得DIV的宽度和高度的跨浏览器方法?

问题描述 投票:2回答:2

我使用jQuery。我正在尝试找到一种方法来获取DIV元素的当前宽度和高度,即使将它们设置为“自动”也是如此。我发现了很多方法可以做到这一点,但是没有方法在IE中返回相同的宽度。此方法是跨浏览器,这一点很重要,因为如果在不同的浏览器中返回不同的数字,它将破坏页面的布局。

。width()和.height()不起作用,因为在IE中,减去了填充(例如,width()返回25,其中width为30,padding为5)。

。outerWidth()和.outerHeight()也不一致。当他们在FF中运行IE(信不信由你)时,会将填充再次添加到全宽(例如,在FF中,width为100px,填充为10px时,outerWidth()返回FF)。

如果不编写复杂的浏览器检查程序,有什么办法摆脱混乱?谢谢!

javascript jquery cross-browser height width
2个回答
9
投票

在我看来,您需要在页面上添加DOCTYPE才能将IE强制为“符合标准”模式,而不是“怪癖”模式。参见Quirks mode and strict mode

另请参见width()

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS93U3BJRi5wbmcifQ==” alt =“如何计算宽度”>

width()

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9LZUpRZi5wbmcifQ==” alt =“ outerWidth的计算方式”>“ >>>


1
投票

我不知道这是否有帮助,但是以下片段将设置内部元素的高度,以使其完全填充可用空间。内部元素(e)可以嵌套在具有设定高度的参考元素(r)内的任何深度。该片段考虑了e和r之间所有同级的高度。这两个参数都可以作为DOM元素或JQuery对象传递。

© www.soinside.com 2019 - 2024. All rights reserved.