box-sizing:border-box; 是CSS3新增属性,了解这个属性,我们先从块级元素的盒子大小说起。
通常一个块级元素实际所占宽高度=外边距(margin)+ 边界宽度(border-width) + 内边距(padding)+ 高度(height) / 宽度(width)
如果设置了border-box,实际所占宽高度 = 设置的高度(height)/ 设置的宽度(width)+ 外边距(margin)
你运行下面的代码就很好理解了
<style> #div1 {box-sizing:border-box; height:200px; width:200px; background:red; margin:10px; border:1px solid #000; padding:20px;} #div2 {box-sizing:content-box; height:200px; width:200px; background:red; margin:10px; border:1px solid #000; padding:20px;} </style> <div id="div1">border-box</div> <div id="div2">content-box</div>
对于设置这个属性的好处,更多是居于排版问题,很多情况下很实用,简化了计算位置的问题,更符合我们日常对盒子的认识