今天着重说明下padding和box-sizing: border-box;的作用,今天听慕课网,学习了前端大神张鑫旭讲解的padding,其中介绍了pading和box-sizing:border-box的作用!
注意兼容性:
box-sizing:border-box; -moz-box-sizing:border-box; /* Firefox */ -webkit-box-sizing:border-box; /* Safari */ -o-box-sizing:border-box; /* Op */
padding重点:
1、padding值暴走,一定会影响尺寸
2、width值非auto,padding影响尺寸
3、width值为auto或者box-sizing:border-box,同时padding没有暴走,就不会影响尺寸
看图:
<style> div{float: left; margin-right: 20px;} .box1{width: 200px;height: 200px;border: 30px solid #999; padding: 0 50px;box-sizing: border-box; } .box2{width: 200px;height: 200px;border: 30px solid #999; padding: 0 50px; } .box3{width: 200px;height: 200px;border: 1px solid #999; /* padding: 0 50px;*/ } </style> <div class="box1"> 使用了padding和box-sizing: border-box; </div> <div class="box2"> 使用了使用了padding,未使用box-sizing: border-box; </div> <div class="box3"> 未使用padding和box-sizing </div>
在box1中同时使用了padding和box-sizing: border-box;导致内容区一再缩减,原本高宽100px不变,所有内容都向内凹,包括border,这就是box-sizing:border-box的作用了! 也就是说,加入了box-sizing: border-box后,border外边框变成了内边框。
看box2的时候,由于没有box-sizing:border-box,所以padding是正常的内边距,撑开了box2宽度,border也是正常的外边框!
box3就是最基本的只加了border为1的外边框,宽度和高度都变为了100+1+1,高宽都为102px;