CSS列百分比无法按预期工作

时间:2012-11-15 12:08:29

标签: html css percentage multiple-columns

我想在HTML + CSS中创建三列,第一列为15%,第二列为70%,第三列为15%。问题是,在我的代码中,当我调整窗口大小时,第三列正在收尾。我为我的网站编写了这样的CSS:

.maincont {
      margin-left: 0px;
      margin-right: 0px;
      width: 100%;
    }

.lcol,
.rcol,
.content {
      display: inline;
      float: left;
      position: relative;
      margin-left: 10px;
      margin-right: 10px;
    }

.lcol {
      width: 15%;
      background-color: red;
    }

.rcol {
      width: 15%;
      background-color: green;
    }

.content {
      width: 70%;
      background-color: blue;
    }

HTML code:

<body>

  <div class="maincont">
    <div class="lcol">
    </div>
    <div class="content">
    </div>
    <div class="rcol">
    </div>
  </div>

</body>

我做错了什么?提前谢谢。

3 个答案:

答案 0 :(得分:5)

@Maccath绝对正确。但是,我可以建议将其添加到CSS文件的顶部,而不是更改任何数字:

* { 
    -moz-box-sizing: border-box; 
    -ms-box-sizing: border-box; 
    box-sizing: border-box; 
  }

支持比IE8更新的一切 - 您的宽度和高度将包含填充。 此外,将CSS中的边距数字更改为填充,您将获得所需的结果。

答案 1 :(得分:3)

.content的边距是你的问题。边距增加了整个内容的宽度,因此它总共超过100%宽度的20px,这就是它迫使列包装的原因。

我建议在.content上使用百分比保证金。将.content的宽度减少到66%,然后将边距设置为... 0.66%(奇怪的数学,因为它是相对的)。但是,这样做的缺点是,根据浏览器窗口的宽度,列之间的间隙不一致。

答案 2 :(得分:1)

删除

margin-left: 10px;
margin-right: 10px;

它调整div大小,总结超过100%