Știu cum să fac 2 divs float side by side, pur și simplu plutesc unul la stânga și altul la dreapta.
Dar cum să facă acest lucru cu 3 diviziuni sau ar trebui să folosesc tabele pentru acest scop?
Dă-le o lățime și float: stânga;
, aici's un exemplu:
<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>
Moderne mod este de a utiliza CSS flexbox, a se vedea suport tabele.
.container {
display: flex;
}
.container > div {
flex: 1; /*grow*/
}
<div class="container">
<div>Left div</div>
<div>Middle div</div>
<div>Right div</div>
</div>
Puteți folosi, de asemenea, CSS grid, a se vedea suport tabele.
.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>
<br style="clear: left;" />
acest cod care a postat cineva acolo sus, a făcut truc!!! când am lipiți-l chiar înainte de închidere DIV Container, este clar ajută ulterioare DIVs din care se suprapun cu DIVs i'am creat side-by-side în partea de sus!
<div>
<div class="left"></div>
<div class="left"></div>
...
...
<div class="left"></div>
<!-- then magic trick comes here -->
<br style="clear: left;" />
</div>
tadaa!! :)
Float toate cele trei diviziuni la stânga. Ca aici:
.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;
}
<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>
avantajul acestui mod este că puteți seta fiecare coloană lățime independent de alte atâta timp cât vă păstrați-l sub 100%, dacă utilizați 3 x 30% restul de 10% este împărțit ca un 5% separator spațiu între collumns
Eu prefer aceasta metoda, flotoare sunt slab susținute în versiunile mai vechi ale IE (într-adevăr?...)
.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; }
ACTUALIZAT : Desigur, pentru a folosi această tehnică și datorită poziționare absolută trebuie să anexeze divs pe-un recipient și de a face o postprocesare pentru a defini înălțimea de dacă, ceva de genul asta:
jQuery(document).ready(function(){
jQuery('.main').height( Math.max (
jQuery('.column-left').height(),
jQuery('.column-right').height(),
jQuery('.column-center').height())
);
});
Nu cel mai uimitor lucru din lume, dar cel puțin nu't break mai vechi IEs.
Am't vedea bootstrap răspuns, așa că de ce'e's valoare de:
<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;" />
să Bootstrap dau seama de procente. Îmi place să cer atât, doar în cazul în.
Float fiecare div și a stabilit clar;atât de rând. Nu este nevoie să setați lățimi dacă nu doriți să. Funcționează în Chrome 41,Firefox 37, IE 11
[Click aici pentru JS Vioara]()
<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;
}
Aici's cum am reusit sa fac ceva similar cu acest lucru într-un `
<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;
}
@Leniel această metodă este bună, dar trebuie să adăugați lățimea la toate plutitoare div's. Aș spune că le face lățime egală sau atribui lățime fixă. Ceva de genul
.content-wrapper > div { width:33.3%; }
puteți atribui nume de clasa pentru fiecare div, mai degrabă decât adăugarea de stil inline
, care nu este o practică bună.
Asigurați-vă că utilizați un clearfix div sau clar div pentru a evita următorul conținut rămâne sub aceste div's.
Puteți găsi detalii despre cum să folosiți clearfix div aici