这是一个通用的编程问题(它还没有特定的目的/应用程序)。
如果我在HTML中创建一个标签(比如说img,a或div),但是没有定义它的宽度或者使用百分比宽度(即width:50%
)我将如何找到实际的它使用javascript显示宽度(以像素为单位)?我也赞成它是crossbrowser,但这不是我的主要关注点。
我的意思是我知道如果它是一个像div一样的块元素,它将需要100%
,但我如何找到100%
是什么?我是否只需要爬上节点树,直到找到具有已定义宽度的父节点,然后根据该节点计算它?
我知道clientWidth
和clientHeight
,但这些都不是crossbrowser或w3批准的......
答案 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;
}
}
};