浮动左右比包装div大?

时间:2017-04-17 19:43:35

标签: html css

我正在尝试在电子邮件模板中创建彩色列部分。我遇到的问题是包含所有电子邮件内容的内容包装器是根据下面的代码设置的。同样,包括浮动列CSS。

#content {
  background-color: white;
  margin: auto;
  width: 600px;
  color: #888;
  font-size: 12px;
  border-radius: .6em .6em 0em 0em;
  box-shadow: 0px 0px 15px 0px #555;
}
.blueLeft {
  background-color: #33ccff;
  float: left;
  display: block;
  width: 300px;
  padding: 20px;
  font-size: 16px;
}
.blueRight {
  background-color: #33ccff;
  float: right;
  display: block;
  width: 300px;
  padding: 20px;
  font-size: 16px;
}
<div id="content">
   <div class="blueLeft">
      <p>
         Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
      </p> 
   </div>
   <div class="blueRight">
      <p>
           Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
      </p> 
   </div><div class="clearFloat"></div>
</div>

如您所见,内容包装器有width: 600px;,每列都是300px。那么你会期望列将填充包装器宽度的100%,其间没有空间。将宽度设为50%是同样的问题。所以,不知怎的,#content显示的比它应该的要小。

如何编辑它以使每列真正占据内容宽度的50%?

结果如下: css problems

1 个答案:

答案 0 :(得分:7)

这是因为你有宽度和填充。

如果您将box-sizing: border-box;添加到.blueLeft.blueRight,则会解决您的宽度问题。

有关其原因和方法的详细信息,请参阅MDN documentation on the CSS Box Model