CSS盒模型
标准盒子模型
在标准盒模型
中,元素的whith
和height
指的是元素内容的宽度和高度,也就是说我们改变元素的margin
、padding
、border
,都不会改变元素内容的宽度和高度。
.box {
box-sizing: content-box; // 默认是标准盒子模型
}
IE盒子模型
在IE盒子模型
中,元素的whith
和height
指的是元素内容的宽度和高度 + 内边距(padding)+ border(边框),也就是说我们改变元素的padding
、border
,是会改变元素内容的宽度和高度的。
.box {
box-sizing: border-box;
}
通过DOM节点中的style属性获取元素宽度/高度
缺点是只能获取行内样式
, 不能获取内嵌样式
、外链样式
。
let width = element.style.width;
let height = element.style.height;
通过window.getComputedStyle方法获取元素宽度/高度,这是一个通用型方法
let width = window.getComputedStyle(element).width;
let height = window.getComputedStyle(element).height;
通过getBoundingClientRect方法获取元素宽度/高度,这个方法是获取一个元素的绝对位置,可以拿到元素的left
、top
、width
、height
、
let width = element.getBoundingClientRect().width;
let height = element.getBoundingClientRect().height;