说到box-sizing,首先要知道什么是CSS盒模型!盒子模型有两种:IE的border-box和w3c的content-box。看了图你可能已经明白了,但是还得继续说,简单来说:标准的w3c盒模型的范围包括margin,border,padding,content,content部分不包括其他部分,并且border-box是W3C的标准框模型,包括content、padding、border:/*outerboxsizeCalculate(elementspacesize)*/Elementspaceheight=contentheight+padding+border+marginElementspacewidth=contentwidth+padding+border+margin/*内框尺寸计算(元素尺寸)*/ElementHeight=contentheight+padding+border(Heightiscontentheight)ElementWidth=contentwidth+padding+border(Widthiscontentwidth)IE)TraditionalBoxModel(IE6以下,不包括IE6版本或“IE5.5+下的QuirksMode”):/*外框尺寸计算(元素空间尺寸)*/元素空间高度=内容高度+边距(高度包括元素内容宽度,borderwidth,andpaddingwidth)Elementspacewidth=contentWidth+margin(Width包括元素contentwidth,borderwidth,paddingwidth)/*内框尺寸计算(元素尺寸)*/ElementHeight=contentHeight(Heightcontainselementcontentwidth,borderwidth,paddingwidth)ElementWidth=contentWidth(WidthcontainselementContentwidth,borderwidth,paddingwidth)基本上你能理解清楚了吧?想想你有没有遇到过这样的情况,多列布局因为paddingborder在重新布局的时候被打乱了,明明是我想要每行四个元素,结果第四个被挤掉了。例如,在三列布局方面:
