我正在使用 Android WebView 来显示我的应用程序的 HTML 内容。我需要动态查找元素(通常是 div)的完整高度,包括填充、边距和边框。我正在使用 JavaScript,无法使用 jQuery。
我一直在使用scrollHeight
在我的 div 上获取高度。我使用了 div 的计算样式var style = window.getComputedStyle(DIV, null);
并通过调用获得顶部和底部边距style.marginTop
and style.marginBottom
。它们都是 0px。问题是scrollHeight
仍然没有考虑属于 div 的边距的高度。
我获取了 div 的子元素(通常是 P 或 H* 标签),并以相同的方式获取了相同的字段:scrollHeight
, marginTop
, and marginBottom
. The scrollHeight
s 完全相同(因为我通常每个 div 只有一个子元素),但子元素中通常有一个顶部或底部边距值,该值不会反映在父元素中。
我真的不明白为什么会这样。看起来好像通过子级的边距在父级之外呈现,但父级对此一无所知,并且无法直接访问它。
我正在寻找一种方法来通过父元素访问子元素定义的边距。那可能吗?
这个问题 https://stackoverflow.com/questions/2555002/how-to-get-the-height-of-a-div-considering-inner-elements-margins非常有帮助,但我没有找到以这种方式呈现的根本原因,并且线程似乎已经变冷了。
Thanks!
Sime Vidas 为我指明了正确的方向,谢谢!
我发现自己试图找出 div 及其子级之间折叠边距的确切高度(但在我的问题中措辞有很大不同)。当通过 DOM 访问该信息时,它会告诉我父级和子级的样式属性,但它不会报告任何折叠边距的高度。
所以...我的问题的真正答案是否定的。我一直无法找到直接访问折叠边距属性的方法。
同样好的是采取offsetTop
我的 div 的属性,并找到它们之间的差异offsetTop
下一个 Div 的属性。这给出了总高度,包括边距的最终渲染。要仅求边距,请减去scrollHeight
.
这可能不适用于所有情况,但对于我的目的来说已经足够了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)