JavaScript获取内容框的大小

JavaScript获取内容框的大小,javascript,dom,Javascript,Dom,我使用填充来限制内容框的大小。我需要一种方法来获得内容框的大小,宽度和高度以像素为单位 我乐于解决嵌套元素、伪元素、尝试flex box设置之类的问题 然而,获取这些值的普通JavaScript方法是问题的主题 示例:嗯,您可以尝试: element.clientHeight element.clientWidth -或- 根据您的需要,但我们需要一些代码来真正帮助您。使用jquery尝试以下操作: 摘自a的答案;您可以使用window.getComputedStyleelement,

我使用填充来限制内容框的大小。我需要一种方法来获得内容框的大小,宽度和高度以像素为单位

我乐于解决嵌套元素、伪元素、尝试flex box设置之类的问题

然而,获取这些值的普通JavaScript方法是问题的主题

示例:

嗯,您可以尝试:

element.clientHeight    
element.clientWidth
-或-

根据您的需要,但我们需要一些代码来真正帮助您。

使用jquery尝试以下操作:


摘自a的答案;您可以使用window.getComputedStyleelement,null.getPropertyValue'css-property';获取计算的CSS属性的值。在您的情况下,可以将其用于padding left、padding right、padding top和padding bottom属性

例如,要计算box div的内容框的高度,可以执行类似于以下操作的操作,其中我假设填充被指定为整数,因此是parseInt


你的代码在哪里?element.offsetWidth和element.offsetHeight呢?这不适用于任何特定的代码。下面是一个示例:从,您可以执行window.getComputedStylebox,null.getPropertyValue'padding-top';,使用var-box=document.getElementById'box';这将返回'20px',您可以从clientWidth/clientHeight中减去它。如果你对所有的填充值都这样做,你应该很乐意去做。@daniel knippers请你把它作为一个答案,特别是window.getComputedStyle部分正是我自己做这个计算所需要的。正如这里演示的,这些不是所需的值。
element.offsetWidth
element.offsetHeight
$(document).ready(function(){
  $("pre").append("Total Height = " + ($("#box").height() - parseInt($("#box").css("padding-top"))));
});
function property(e, p) { 
    return parseInt(window.getComputedStyle(e, null).getPropertyValue(p)); 
}

var box = document.getElementById('box');
var paddingTop = property(box, 'padding-top');
var paddingBottom = property(box, 'padding-bottom');    
var contentHeight = box.clientHeight - paddingTop - paddingBottom;