检测Div的可见宽度

时间:2011-06-13 18:30:01

标签: javascript html css

这是一个通用的编程问题(它还没有特定的目的/应用程序)。

如果我在HTML中创建一个标签(比如说img,a或div),但是没有定义它的宽度或者使用百分比宽度(即width:50%)我将如何找到实际的它使用javascript显示宽度(以像素为单位)?我也赞成它是crossbrowser,但这不是我的主要关注点。

我的意思是我知道如果它是一个像div一样的块元素,它将需要100%,但我如何找到100%是什么?我是否只需要爬上节点树,直到找到具有已定义宽度的父节点,然后根据该节点计算它?

我知道clientWidthclientHeight,但这些都不是crossbrowser或w3批准的......

2 个答案:

答案 0 :(得分:0)

查看jQuery API中的.width()函数。这绝对是跨浏览器并返回宽度(以像素为单位)(详见documentation)。

答案 1 :(得分:0)

可能的解决方案是使用原型方法

Element.prototype.getElementWidth = function() {
    if (typeof this.clip !== "undefined") {
          return this.clip.width;
    } else {
      if (this.style.pixelWidth) {
          return this.style.pixelWidth;
      } else {
             return this.offsetWidth;
      }
    }
};