* 正常盒子 box-sizing:content-box * 不正常盒子 box-sizing:border-box;
咱们常常要写一个<input type="text"><input type="button">的搜索框,由于已经写习惯了,老是拿来就写,没有注意一些特殊的地方.今日,女神学CSS的时候遇到问题,拿来问我,一开始我以为就那样写就是了,不那样写确定出问题,可是细究之下,不寒而栗...chrome
咱们知道,两个input以前是有间隙的,因此,若是不想让他俩手拉手,而是肩并肩的挨着的话,你须要这样写两个挨着的inputcode
<input type="text"><input type="button"> <!--也能够这样--> <input type="text"><!--这行注释拉近了他们的距离/笑 --><input type="button">
input[type = button/reset/submit]这三个家伙是有默认的padding,border,margin值的.可是通常的咱们在开始都是清除默认样式,例如最简单的这样开发
*{ padding:0; margin:0 }
border:1px solid red
正常盒子 (非怪异模式) 好比咱们设置了一个div,或者input[type=text],我以下写它的CSS样式input
height:50px; width:50px; border:10px solid red; padding:5px; background:yellow
经过chrome查看它的盒子模型 it
咱们发现正常的盒子模型:搜索
其"可视高度" = width(咱们手动设置的50px)+padding(5px2)+border(10px2) = 80pxim
width < padding < border是向外堆叠的,一层一层构成了其"可视高度"样式
不正常的button盒子margin
height:50px; width:50px; border:10px solid red; padding:5px; background:yellow
不正常的盒子:-> 特质button/submit/reset的inputimg
其"可视高度" = width(咱们手动设置的)
width > padding > 内容 是一层层的向里堆叠的.若是手动设置了width和padding,其内容的高度(或者宽度)会被自动压缩
其实一个盒子实际占据的空间(下面叫实际宽度)是由它的"但是宽度"+ margin决定的.
咱们通常在开发中会把全部的盒子都改写成border-box模式即 ` *{ box-sizing: border-box }
`