设置盒模型以哪一种方式计算web
以border为边界,宽高是包括边框和内边距的,因此border+padding+content = width;若是给宽高后再给padding是向里,盒模型的宽高不会改变code
以content为边界,宽高仅仅是内容的宽高,再给padding或者border是向外,因此盒模型的宽高是变大的it
box-sizing指定那个属性就宽高就做用到那个属性上
为了方便计算,在重置样式的时候会初始化盒模型,以下:io
* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
盒模型不会影响定位元素的做用范围,始终以margin的位置进行定位,以父元素的conten为基准webkit
div,p{ margin: 0; } #box{ width: 200px; height: 200px; border: solid 10px #0000FF; /*border-box是以边框为边界,边框向里*/ box-sizing: border-box; /*content-box是之内容为边界,边框向外*/ /*box-sizing: content-box;*/ /*总结:box-sizing指定谁,宽高就定准在谁身上*/ position: relative; } #box2{ /*元素没有定位以边框为边界*/ width: 40px; height: 40px; border: 8px solid red; /*元素有定位的话是以margin为起始点,不影响margin的做用*/ position: absolute; top: 0; left: 0; margin-left: 20px; } <div id="box"> <p id="box2"></p> </div>
box2的margin-left会相对box的content定位,而不包括边框总结