获取元素的内容宽度

时间:2013-07-03 00:48:57

标签: javascript

offsetWidth对我来说不够好,因为这包括填充和边框宽度。我想找出元素的内容宽度。是否有一个属性,或者我必须采用offsetWidth然后从计算样式中减去填充和边框宽度?

4 个答案:

答案 0 :(得分:4)

由于这是谷歌搜索时首先出现但尚未找到合适的答案,这里有一个:

function getContentWidth (element) {
  var styles = getComputedStyle(element)

  return element.clientWidth
    - parseFloat(styles.paddingLeft)
    - parseFloat(styles.paddingRight)
}

基本上,我们首先得到元素的宽度,包括填充(clientWidth),然后左右填充填充。我们需要parseFloat填充,因为它们是px - 后缀字符串。

我已在CodePen创建了一个小游乐场,请查看!

答案 1 :(得分:1)

听起来我想要在元素上使用getComputedStyle。您可以在此处查看getComputedStyleoffsetWidth的示例:http://jsbin.com/avedut/2/edit

或者:

window.getComputedStyle(document.getElementById('your-element')).width;

答案 2 :(得分:0)

我有类似的问题,我的父元素不是窗口或文档...我正在通过 Javascript 加载图像并希望它在加载后居中。

Columns=80000

每当您设置 src 时,它就会滚动到图像的中心。这对我来说是在放大图像的高分辨率版本的情况下。

答案 3 :(得分:-1)

我建议使用scrollWidthclientWidth,具体取决于您是否要考虑滚动条。

结帐Determining the dimensions of elementsspecification itself