box-sizing:border-box

box-sizing:border-box区别于box-sizing:content-box,后者是标准的盒模型,前者改变了对于宽度的界定。

* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box
}

:before,
:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box
}

(bootstrap全局中设定该样式,据说是标准写法)

先从块级元素的盒子大小说起,通常一个块级元素实际所占宽高度=外边距(margin)+ 边界宽度(border-width) + 内边距(padding)+ 高度(height) /  宽度(width)

如果设置了border-box,实际所占宽高度 = 设置的高度(height)/ 设置的宽度(width)+ 外边距(margin);

  1. <style>  
  2. #div1 {box-sizing:border-box; height:200px; 200px; background:red; margin:10px; border:1px solid #000; padding:20px;}  
  3. #div2 {box-sizing:content-box; height:200px; 200px; background:red; margin:10px; border:1px solid #000; padding:20px;}  
  4. </style>  
  5.    
  6. <div id="div1">border-box</div>  
  7. <div id="div2">content-box</div>  

设置他以后,相当于以怪异模式解析,border和padding全会在你设置的宽度内部,比如手机端设置两行并且的布局,宽度各为50%,如果不用这个属性,设置border后右边的div会下来错位,设置这个属性,宽度还是50%而不是50%+*px,两行可以并列显示

原文地址:https://www.cnblogs.com/ztoz/p/5978673.html