我知道如何让2个divs并排浮动,简单地浮动一个到左边,另一个到右边。

但是如何用3个div来做这个,或者我应该只用表来做这个目的吗?


当前回答

我更喜欢这种方法,浮动在旧版本的IE中支持很差(真的吗?…)

.column-left{ position:absolute; left: 0px; width: 33.3%; background: red; }
.column-right{position:absolute; left:66.6%; width: 33.3%; background: green; }
.column-center{ position:absolute; left:33.3%; width: 33.3%; background: yellow; }

更新: 当然,要使用这种技术,由于绝对定位,你需要在容器上封装div,并做后处理来定义if的高度,类似这样:

jQuery(document).ready(function(){ 
    jQuery('.main').height( Math.max (
        jQuery('.column-left').height(),
        jQuery('.column‌​-right').height(),
        jQuery('.column-center').height())
    ); 
});

这不是世界上最神奇的东西,但至少不会砸到老的ie。

其他回答

display: table;如果文本需要显示,如果在同一行

换句话说;如果在每个<div>文本的垂直对齐需要是相同的,一个可以尝试现代复古回到过去的有点有争议的表格样式:

.container {display: table;}
div   {display: table-cell;}

事实证明,这对于在Pandoc中格式化csl风格的引用非常有用,如下所示:

div.csl-bib-body {}
div.csl-entry {
    margin-top: 1rem;
    display: table;
    }
div.csl-left-margin {
    display: table-cell;
    }
div.csl-right-inline {
    padding-left: 1ex;
    display: table-cell;
    }

引文编号div和引文数据div现在显示在完全相同的高度。

三次跳水都向左飘。像在这里:

.first-div {
  width:370px;
  height:150px;
  float:left;
  background-color:pink;
}

.second-div {
  width:370px;
  height:150px;
  float:left;
  background-color:blue;
}

.third-div {
  width:370px;
  height:150px;
  float:left;
  background-color:purple;
}

@Leniel这个方法很好,但是你需要为所有浮动div添加宽度。我会说,让它们宽度相等或分配固定宽度。类似的

.content-wrapper > div { width:33.3%; }

您可以为每个div分配类名,而不是添加内联样式,这不是一个好的实践。

请确保使用clearfix div或clear div,以避免下面的内容仍然低于这些div。

你可以在这里找到如何使用clearfix div的详细信息

这与你为两个div所做的方式相同,只是将第三个div浮动到左或右。

<style>
  .left{float:left; width:33%;}
</style>

<div class="left">...</div>
<div class="left">...</div>
<div class="left">...</div>

把它们都飘到左边

确保所指定的宽度都能适合它们的容器(无论是另一个div还是窗口),否则它们将自动换行