我使用jQuery。我正在尝试找到一种方法来获取DIV元素的当前宽度和高度,即使将它们设置为“自动”也是如此。我发现了很多方法可以做到这一点,但是没有方法在IE中返回相同的宽度。此方法是跨浏览器,这一点很重要,因为如果在不同的浏览器中返回不同的数字,它将破坏页面的布局。
。width()和.height()不起作用,因为在IE中,减去了填充(例如,width()返回25,其中width为30,padding为5)。
。outerWidth()和.outerHeight()也不一致。当他们在FF中运行IE(信不信由你)时,会将填充再次添加到全宽(例如,在FF中,width为100px,填充为10px时,outerWidth()返回FF)。
如果不编写复杂的浏览器检查程序,有什么办法摆脱混乱?谢谢!
在我看来,您需要在页面上添加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的计算方式”>“ >>>
我不知道这是否有帮助,但是以下片段将设置内部元素的高度,以使其完全填充可用空间。内部元素(e)可以嵌套在具有设定高度的参考元素(r)内的任何深度。该片段考虑了e和r之间所有同级的高度。这两个参数都可以作为DOM元素或JQuery对象传递。