我知道如何让2个divs并排浮动,简单地浮动一个到左边,另一个到右边。
但是如何用3个div来做这个,或者我应该只用表来做这个目的吗?
把它们都飘到左边
确保所指定的宽度都能适合它们的容器(无论是另一个div还是窗口),否则它们将自动换行
你可以为它们设置float: left,并将宽度设置为33.333%
只需要给它们一个宽度和float: left;,这里有一个例子:
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>
这与你为两个div所做的方式相同,只是将第三个div浮动到左或右。
<style> .left{float:left; width:33%;} </style> <div class="left">...</div> <div class="left">...</div> <div class="left">...</div>
我通常只是把第一个浮动到左边,第二个浮动到右边。第三个自动在它们之间对齐。
<div style="float: left;">Column 1</div> <div style="float: right;">Column 3</div> <div>Column 2</div>
<br style="clear: left;" />
有人在那里发布的代码,它做到了!! 当我在关闭容器DIV之前粘贴它时,它有助于清除所有后续DIVs与我在顶部并排创建的DIVs重叠!< / p >
<div> <div class="left"></div> <div class="left"></div> ... ... <div class="left"></div> <!-- then magic trick comes here --> <br style="clear: left;" /> </div>
tadaa ! !:)
下面是我如何在<footer>元素中做类似的事情:
<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; }
尝试在样式中添加“display: block”
<style> .left{ display: block; float:left; width:33%; } </style> <div class="left">...</div> <div class="left">...</div> <div class="left">...</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%的分隔空间列之间
@Leniel这个方法很好,但是你需要为所有浮动div添加宽度。我会说,让它们宽度相等或分配固定宽度。类似的
.content-wrapper > div { width:33.3%; }
你可以为每个div分配类名,而不是添加inline style,这不是一个好的做法。
inline style
请确保使用clearfix div或clear div,以避免下面的内容仍然低于这些div。
你可以找到如何使用clearfix 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; }
jQuery(document).ready(function(){ jQuery('.main').height( Math.max ( jQuery('.column-left').height(), jQuery('.column-right').height(), jQuery('.column-center').height()) ); });
这不是世界上最神奇的东西,但至少不会砸到老的ie。
三次跳水都向左飘。像在这里:
.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并设置为清除;都是针对行。不需要设置宽度,如果你不想。适用于Chrome 41,Firefox 37, IE 11
点击for JS Fiddle
<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; }
现代的方法是使用< >强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*/ }
我没有看到bootstrap的答案,所以不管怎样
<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计算百分比。 我想清除这两个,以防万一
display: table;
换句话说;如果每个<div>中文本的垂直对齐需要相同,则可以尝试使用有点争议的table样式来尝试现代复古的复古:
<div>
table
.container {display: table;} div {display: table-cell;}
事实证明,这对于格式化__abc0风格的Pandoc中的引用非常有用,如下所示:
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现在是显示在完全相同的高度。
div