【问题标题】:clientHeight in FireFoxFirefox 中的客户端高度
【发布时间】:2011-06-29 20:13:09
【问题描述】:

我有一个 HTML 代码表格。

我需要使用 JavaScript 获取该表的高度,所以

alert(document.getElementById('myTable').clientHeight);

在 IE 中返回正确的值,但在 FF 中总是返回 0。

如何在 Firefox 中获取表格的高度?

谢谢!

【问题讨论】:

  • 试试 offsetHeight 或 scrollHeight ...
  • 刚试过,offsetHeight返回0,scrollHeight也在FF中retorns 0:(

标签: javascript firefox dom element


【解决方案1】:

也许来人可以在这里纠正我,但如果你想获得特定元素的高度,那么为什么不直接使用

编辑:这仅在元素具有内联样式和定义的高度时才有效

document.getElementById('myReputation').style.height;

【讨论】:

  • @Jaitsu 该属性将为空,除非 TABLE 的高度由 CSS 明确设置,但情况可能并非如此。
  • 我没有在css中设置表格的高度
  • @Jaitsu 另外,我相信style 是只写的。要阅读 vales,您必须使用 window.getComputedStyle(table, null).getPropertyValue('height')
  • 如果您设置 CSS 高度并运行该代码,它会返回 height 属性,但它显然不符合 ihorko 的要求,因为他们没有明确设置高度
  • 各位,那是因为我有 style='display:none'
【解决方案2】:

clientHeight 在我的 Firefox 中有效:http://jsfiddle.net/sZ9eg/

【讨论】:

    【解决方案3】:

    MDC says:

    clientHeight 是 Internet Explorer 对象模型中引入的非标准、特定于 HTML 的属性。

    在 Firefox 中,offsetHeight 属性包含元素的当前像素高度,因此您可以使用以下内容:

    var theHeight = element.clientHeight || element.offsetHeight;
    

    【讨论】:

    • element.clientHeight = 0, element.offsetHeight = 0 and element.clientHeight || element.offsetHeight 在 FF 中也 = 0
    • @ihorko:您确定您选择了正确的表(并且它已添加到 DOM)吗?
    • 似乎是因为最初的表格有样式 display:none
    • @ihorko 你的桌子没有高度,但它没有显示,但如果你删除样式,那么你应该能够测量它的高度。
    【解决方案4】:

    你试过 offsetHeight 吗?见http://www.quirksmode.org/dom/w3c_cssom.html

    【讨论】:

      猜你喜欢
      • 2015-08-13
      • 2021-03-22
      • 2018-08-17
      • 2010-10-12
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      相关资源
      最近更新 更多