Sé cómo hacer que 2 divs floten uno al lado del otro, simplemente floten uno a la izquierda y el otro a la derecha.
Pero, ¿cómo hacer esto con 3 divs o debería usar tablas para este propósito?
Solo dales un ancho y float: left;
, aquí hay un ejemplo:
<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;" />
ese estilo en particular?
La forma moderna es usar CSS flexbox , ver tablas de soporte .
.container {
display: flex;
}
.container > div {
flex: 1; /*grow*/
}
<div class="container">
<div>Left div</div>
<div>Middle div</div>
<div>Right div</div>
</div>
También puede usar la cuadrícula CSS , consulte las tablas de soporte .
.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>
Es lo mismo que haces para los dos divs, solo flota el tercero a izquierda o derecha también.
<style>
.left{float:left; width:33%;}
</style>
<div class="left">...</div>
<div class="left">...</div>
<div class="left">...</div>
flotarlos todos a la izquierda
asegúrese de que se especifique un ancho para que todos puedan caber en su contenedor (ya sea otro div o la ventana), de lo contrario, se envolverán
<br style="clear: left;" />
ese código que alguien publicó allí, ¡funcionó! cuando lo pego justo antes de cerrar el DIV de contenedor, ¡ayuda a eliminar todos los DIV posteriores que se superpongan con los DIV que he creado uno al lado del otro en la parte superior!
<div>
<div class="left"></div>
<div class="left"></div>
...
...
<div class="left"></div>
<!-- then magic trick comes here -->
<br style="clear: left;" />
</div>
tadaa !! :)
Flota los tres divs a la izquierda. Como aquí:
.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;
}
Por lo general, floto el primero a la izquierda, el segundo a la derecha. El tercero se alinea automáticamente entre ellos entonces.
<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>
La ventaja de esta manera es que puede establecer el ancho de cada columna independientemente de la otra, siempre que lo mantenga por debajo del 100%, si usa 3 x 30%, el 10% restante se divide como un espacio divisor del 5% entre las columnas
puede flotar: izquierda para todos ellos y establecer el ancho en 33.333%
intenta agregar "display: block" al estilo
<style>
.left{
display: block;
float:left;
width:33%;
}
</style>
<div class="left">...</div>
<div class="left">...</div>
<div class="left">...</div>
No vi la respuesta de arranque, así que para lo que vale:
<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;" />
deje que Bootstrap calcule los porcentajes. Me gusta aclarar ambos, por si acaso.
Prefiero este método, los flotadores no son compatibles con versiones anteriores de IE (¿en serio? ...)
.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; }
ACTUALIZADO: Por supuesto, para usar esta técnica y debido al posicionamiento absoluto, debe encerrar los divs en un contenedor y realizar un procesamiento posterior para definir la altura de if, algo como esto:
jQuery(document).ready(function(){
jQuery('.main').height( Math.max (
jQuery('.column-left').height(),
jQuery('.column-right').height(),
jQuery('.column-center').height())
);
});
No es lo más asombroso del mundo, pero al menos no se rompe con los IE más antiguos.
Flota cada div y deja claro; ambos para la fila. No es necesario establecer anchos si no lo desea. Funciona en 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;
}
Así es como logré hacer algo similar a esto dentro de un <footer>
elemento:
<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, este método es bueno, pero debe agregar ancho a todos los div flotantes. Yo diría que sean del mismo ancho o asignen un ancho fijo. Algo como
.content-wrapper > div { width:33.3%; }
puede asignar nombres de clase a cada div en lugar de agregar inline style
, lo cual no es una buena práctica.
Asegúrese de usar un clearfix div o clear div para evitar que el contenido siguiente permanezca debajo de estos div.
Puede encontrar detalles sobre cómo usar clearfix div aquí
display: inline-block
esos tipos en lugar de flotarlos. Si sus anchos son en total menores que el ancho del contenedor, se sentarán uno al lado del otro.