获取元素的宽度和高度

获取元素的当前计算尺寸,包含活着不包含边框和边距


下图显示了CSS框模型:具有内容,填充,边框和边距的块元素:

Margin
Border
Padding
Content

使用下面的方法获取每个框的宽度和高度:


var box = document.querySelector('div');

// width and height in pixels, including padding and border
// Corresponds to jQuery outerWidth(), outerHeight()
var width = box.offsetWidth;
var height = box.offsetHeight;

// width and height in pixels, including padding, but without border
// Corresponds to jQuery innerWidth(), innerHeight()
var width = box.clientWidth;
var height = box.clientHeight;
      

元素的边距根据其计算样式来获取:


var box = document.querySelector('div');

// width and height in pixels, including padding and border
// Corresponds to jQuery outerWidth(), outerHeight()
var width = box.offsetWidth;
var height = box.offsetHeight;

// width and height in pixels, including padding, but without border
// Corresponds to jQuery innerWidth(), innerHeight()
var width = box.clientWidth;
var height = box.clientHeight;
      

计算的样式也可以用于读取其他属性。 例如边框宽度:

var borderLeft = parseInt(style.borderLeftWidth) || 0;

获取窗口的宽度和高度的方法有所不同。 就像在jQuery中一样,以上介绍的方法不适用于窗口或文档对象。可以使用下面的方法代替:


var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;