javascript - 如何使用 css 上的 "auto"值检查真正的宽度

标签 javascript jquery html css

我有一个循环:

var takediv = document.getElementById('eye');
for(var i=0; i<categories.length; i++){
   takediv.innerHTML +=^
       '<img alt="'+(categories.length-i)+'" '+
       'onclick="changef(this.alt)" '+
       'src="mobile/img/pic/'+loc+"/mini/"+categories[categories.length-i-1][0]+'" '+
       'style="cursor: pointer;"/>';
}

所有图像都具有此 css:

height: 80px; width: auto;

最后在循环之后我需要给 div 这个 css

document.getElementById('eye').style.width

这将是所有内部 img 宽度的总和

这是我在这里的第一篇文章,如有错误请见谅。 请帮忙,谢谢!

最佳答案

您可以使用多种方法,例如 getBoundingClientRect() 返回位置和宽度/高度的绝对值:

var width = document.getElementById('eye').getBoundingClientRect().width;

请注意,它不包括边框或填充,仅包括内框。

然后是 getComputedStyle() - 这将返回一个以“px”为后缀的字符串,因此我们还需要使用 parseInt() 来解析它:

var width = parseInt(getComputedStyle(document
                .getElementById('eye'))
                .getPropertyValue("width"), 10);

两者都以像素为单位返回大小。

在@Rudi 的回答中,有 offsetWidth,还有 clientWidth。这不包括 margin 。

关于javascript - 如何使用 css 上的 "auto"值检查真正的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30827351/

相关文章:

javascript - 单水平堆叠条

javascript - 查询选择器类在数字验证中不起作用

html - 如何选择与绝对定位 DIV 重叠的选项?

javascript - 通过脚本加载动态播放器的问题

javascript - 根据数组中值的 ngChange 更新禁用 ngOptions

使用外部脚本时出现 JavaScript 语法错误

javascript - 使用 javascript/jQuery 刷新特定 div 内容

javascript - 语法错误,无法识别的表达式 : option[value=property name]

javascript - MVC3 jquery 后序列化数组

html - 如何在html中制作一个像可调整大小的div一样的TableLayoutPanel