-
谈谈CSS盒模型。
CSS把所有html元素都看成一个盒子,因此有了盒模型这个说法。
盒模型包括 content、padding、border、margin 四个部分,其中margin外边距部分不算作盒子宽度以内。
盒模型又根据width和height包含的部分不同而分为W3C标准盒模型和IE盒模型两种。
有两个宽度和高度需要注意:
-
CSS定义的
width属性和height属性在标准盒模型中,
width属性定义的是content的宽度,同理height属性定义的是content的高度。在IE盒模型中,
width属性定义的是content的宽度+padding的宽度+border的宽度,height同理。 -
盒子的尺寸宽度和高度
无论哪个盒模型,盒子尺寸宽度始终包括
content的宽度+padding的宽度+border的宽度。因此在标准盒模型中,
width属性定义的只是盒子尺寸宽度的一部分,所以会出现padding值和border值变化,盒子尺寸宽度(盒子大小)也会变化的情况。而在IE盒模型中,
width属性定义的就是盒子尺寸宽度,因此若改变padding值和border值,盒子尺寸也不会改变,只是内部的content尺寸会受影响。可以通过元素的
box-sizing属性改变元素的盒模型,属性值content-box对应标准盒模型,属性值border-box对应IE盒模型。
\