如何使用CSS并排浮动3个div?

我知道如何使2个div并排浮动,只需将一个div浮动到左侧,将另一个div浮动到右侧。

但是如何使用3个div来做到这一点,或者我应该为此仅使用表格呢?

樱十三2020/03/24 10:35:39

但这可以在Chrome浏览器中使用吗?

浮动每个div并为每个行设置clear;如果您不想的话,不需要设置宽度。适用于Chrome 41,Firefox 37,IE 11

点击获取JS小提琴

的HTML

<div class="stack">
    <div class="row">
        <div class="col">
            One
        </div>
        <div class="col">
            Two
        </div>
    </div>
        <div class="row">
        <div class="col">
            One
        </div>
        <div class="col">
            Two
        </div>
                    <div class="col">
            Three
        </div>
    </div>
</div>

的CSS

.stack .row { 
clear:both;

}
.stack .row  .col    {
    float:left;
      border:1px solid;

}
GO2020/03/24 10:35:39

这是我设法在<footer>元素内执行类似操作的方式

<div class="content-wrapper">

    <div style="float:left">
        <p>&copy; 2012 - @DateTime.Now.Year @Localization.ClientName</p>
    </div>

    <div style="float:right">
        <p>@Localization.DevelopedBy <a href="http://leniel.net" target="_blank">Leniel Macaferi</a></p>
    </div>

    <div style="text-align:center;">
        <p>☎ (24) 3347-3110 | (24) 8119-1085&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;✉ @Html.ActionLink(Localization.Contact, MVC.Home.ActionNames.Contact, MVC.Home.Name)</p>
    </div>

</div>

CSS:

.content-wrapper
{
    margin: 0 auto;
    max-width: 1216px;
}
2020/03/24 10:35:39

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

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

您可以为每个div分配类名,而不是添加inline style,这不是一个好习惯。

确保使用clearfix div或clear div以避免以下内容保持在这些div之下。

您可以在此处找到有关如何使用clearfix div的详细信息

宝儿Eva2020/03/24 10:35:39
<style>
.left-column
{
float:left;
width:30%;
background-color:red;
}
.right-column
{
float:right;
width:30%;
background-color:green;
}
.center-column
{
margin:auto;
width:30%;
background-color:blue;
}
</style>

<div id="container">
<section class="left-column">THIS IS COLUMN 1 LEFT</section>
<section class="right-column">THIS IS COLUMN 3 RIGHT</section>
<section class="center-column">THIS IS COLUMN 2 CENTER</section>
</div>

这种方法的优点是,只要您将每一列的宽度保持在100%以下,就可以设置为彼此独立,如果使用3 x 30%,则将剩余的10%作为5%的分隔线分隔在各列之间

猪猪十三2020/03/24 10:35:39

我通常只将第一个浮动到左边,第二个浮动到右边。然后第三个自动在它们之间对齐。

<div style="float: left;">Column 1</div>
<div style="float: right;">Column 3</div>
<div>Column 2</div>
老丝阿飞2020/03/24 10:35:39

尝试在样式中添加“显示:块”

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


<div class="left">...</div>
<div class="left">...</div>
<div class="left">...</div>
Stafan2020/03/24 10:35:39

我没有看到引导程序的答案,所以这是值得的:

<div class="col-xs-4">Left Div</div>
<div class="col-xs-4">Middle Div</div>
<div class="col-xs-4">Right Div</div>
<br style="clear: both;" />

让Bootstrap找出百分比。我想清除两者,以防万一。

Itachi2020/03/24 10:35:39

您可以浮动:将其全部保留并设置宽度为33.333%

凯神乐2020/03/24 10:35:38

这与您对两个div所做的方法相同,也只需将第三个div左右浮动。

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

<div class="left">...</div>
<div class="left">...</div>
<div class="left">...</div>
蛋蛋猿2020/03/24 10:35:38

现代的方法是使用CSS flexbox,请参阅支持表

.container {
  display: flex;
}
.container > div {
  flex: 1; /*grow*/
}
<div class="container">
  <div>Left div</div>
  <div>Middle div</div>  
  <div>Right div</div>
</div>

您也可以使用CSS网格,请参阅支持表

.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr; /* fraction*/
}
<div class="container">
  <div>Left div</div>
  <div>Middle div</div>  
  <div>Right div</div>
</div>

凯西里2020/03/24 10:35:38
<br style="clear: left;" />

有人在那里张贴的那个代码,就成功了!!!当我在关闭容器DIV之前粘贴它时,它有助于清除所有后续DIV与我在顶部并排创建的DIV重叠!

<div>
<div class="left"></div>
<div class="left"></div>
...
...
<div class="left"></div>
<!--  then magic trick comes here  -->
<br style="clear: left;" />
</div>

多田!! :)

Harry卡卡西猴子2020/03/24 10:35:38

将所有三个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;
}
飞云2020/03/24 10:35:38

将它们全部漂浮

确保指定了一个宽度,使其可以全部放入其容器(另一个div或窗口)中,否则它们将自动换行

斯丁前端2020/03/24 10:35:38

只是给他们一个宽度和float: left;,这是一个例子:

<div style="width: 500px;">
 <div style="float: left; width: 200px;">Left Stuff</div>
 <div style="float: left; width: 100px;">Middle Stuff</div>
 <div style="float: left; width: 200px;">Right Stuff</div>
 <br style="clear: left;" />
</div>