先介绍下box-sizing几个属性:
content-box(默认值)border和padding不计算入width之内
padding-box,padding计算入width内
border-box,border和padding计算入width之内
来个例子,比如一个div中嵌套三个div(div1,div2,div3)最外面的div宽度为300px,里面三个div宽度都为100px
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
.div{
width: 300px;
height: 300px;
border: 1px solid red;
margin: 0 auto;
}
.div1 {
width: 100px;
height: 100px;
float: left;
background: orange;
}
.div2 {
width: 100px;
height: 100px;
background: blue;
float: left;
}
.div3{
width: 100px;
height: 100px;
float: left;
background: green;
}
/*给三个div加边框*/
/*.dd
{
border: 1px solid red;
}*/
</style>
</head>
<body>
<div class="div">
<div class="div1 dd">div1</div>
<div class="div2 dd">div2</div>
<div class="div3 dd">div3</div>
</div>
</body>
</html>
没加边框效果:
加上边框效果:
给三个div加边框
.dd
{
border: 1px solid red;
}
我们发现第三个div移到下面,为什么呢?因为边框设置了1px,css默认情况下不会将边框也计算在宽度内的所以每个div其实宽度增加了2px,所以我们可以通过box-sizing将边框加到原来的宽度内,这样就不会影响结果。