首页 > css布局问题?

css布局问题?

关于这种布局,为什么里面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总的宽度并不会增加。

【热门文章】
【热门文章】