关于这种布局,为什么里面div2元素的boder不会让父元素宽度增加?要是给div1设置边框肯定会增加宽度,这种原理是什么?求高手解答一下。3Q
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<style>
html.body{
width:100%;
height:100%;
}
.div1{
width:33.33%;
float:left;
}
.div2{
height:150px;
border:1px solid red;
}
</style>
</head>
<body>
<div class="div1">
<div class="div2"></div>
</div>
<div class="div1">
<div class="div2"></div>
</div>
<div class="div1">
<div class="div2"></div>
</div>
</body>
</html>
代码在线浏览地址
你没设置div2的宽度啊,他的盒子宽度(width+border+padding之和)就继承父元素的了,如果你给div1和div2的高度都是150,然后再给div2一个border,应该就能看出差距了。建议用chrome工具看
为什么里面div2元素的boder不会让父元素宽度增加?
因为其父元素的宽度(33.33%)是由body决定的,和div2无关
要是给div1设置边框肯定会增加宽度,这种原理是什么?
这种说法不准确,因为盒子模型有两种:IE盒子模型、标准W3C盒子模型
你看到的宽度增加了是因为浏览器默认采用了标准W3C盒子模型,如果你设置.div1{box-sizing:border-box;}(采用IE盒子模型)就会看到div1总的宽度并不会增加。