Skip to content
本页目录

CSS盒模型

标准盒模型(content-box默认)

width和height指的是content的宽高,增加padding和border不会改变content的尺寸,但是会增加元素框整体的尺寸

IE盒模型(border-box)

width和height指的是content+padding+border的宽高,增加padding和border会压缩content的尺寸,元素整体的尺寸不会变。 cssbox1

JS如何设置/获取盒模型对应的宽高

方式1

element.style.width/height 缺点:通过这种方式,只能获取行内样式,不能获取内嵌的样式和外链的样式

方式2

window.getComputedStyle(element).width/height 兼容chrome,火狐,通用方式

方式3(ie独有)

element.currentStyle.width/height

方式4

element.getBoundingClientRect().width/height 此 api 的作用是:获取一个元素的绝对位置。绝对位置是视窗 viewport 左上角的绝对位置。此 api 可以拿到四个属性:left、top、width、height。

margin塌陷/margin重叠

标准文档流中,竖直方向的margin不叠加,只取较大的值作为margin(水平方向的margin是可以叠加的,即水平方向没有塌陷现象)。

PS:如果不在标准流,比如盒子都浮动了,那么两个盒子之间是没有margin重叠的现象的。 举个例子 cssbox2 竖直方向上兄弟元素间 以数值大的为准

margin这个属性,本质上描述的是兄弟和兄弟之间的距离; 最好不要用这个marign表达父子之间的距离。

如果要表达父子之间的距离,我们一定要善于使用父亲的padding,而不是儿子的margin。

BFC(边距重叠解决方案)

未完待续...

Released under the MIT License.