我知道如何使2个div并排漂浮,只需将一个div漂浮在左侧,另一个就漂浮在右侧。
但是如何使用3个div来做到这一点呢?或者我应该只为此使用表格?
display: inline-block
那些家伙,而不是浮动他们。如果它们的宽度总和小于容器的宽度,则它们将彼此相邻。
我知道如何使2个div并排漂浮,只需将一个div漂浮在左侧,另一个就漂浮在右侧。
但是如何使用3个div来做到这一点呢?或者我应该只为此使用表格?
display: inline-block
那些家伙,而不是浮动他们。如果它们的宽度总和小于容器的宽度,则它们将彼此相邻。
Answers:
只是给他们一个宽度和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>
<br style="clear: left;" />
该样式。
现代的方法是使用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>
.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>
将所有三个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;
}
我通常只将第一个浮动到左边,第二个浮动到右边。然后第三个自动在它们之间对齐。
<div style="float: left;">Column 1</div>
<div style="float: right;">Column 3</div>
<div>Column 2</div>
<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%的分隔符,以分隔各列
我没有看到引导程序的答案,所以这是值得的:
<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找出百分比。我想清除两者,以防万一。
我更喜欢这种方法,在较旧版本的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上不会中断。
浮动每个div并为每个行设置clear;如果您不想的话,不需要设置宽度。适用于Chrome 41,Firefox 37,IE 11
<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>
.stack .row {
clear:both;
}
.stack .row .col {
float:left;
border:1px solid;
}
这是我设法在<footer>
元素内执行类似操作的方式:
<div class="content-wrapper">
<div style="float:left">
<p>© 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 ✉ @Html.ActionLink(Localization.Contact, MVC.Home.ActionNames.Contact, MVC.Home.Name)</p>
</div>
</div>
CSS:
.content-wrapper
{
margin: 0 auto;
max-width: 1216px;
}