Como acomodar elementos DIV de tipo float

Cuando queremos tener un DIV que contenga otros dos, los cuales son de tipo float, y queremos que el DIV contenedor represente un borde, nos encontramos con este problema:

div.container {
border: 1px solid #000000;
}
div.left {
width: 45%;
float: left;
}
div.right {
width: 45%;
float: right;
}

Y es que el DIV contenedor no se acomoda para albergar correctamente a los dos DIV de tipo float.

Una solución es añadir un DIV extra con el atributo clear: both, pero no es del todo correcto añadir nuevos atributos a la página cuando estos no son necesarios.

Otra solución, comentada en este artículo, sugiere una modificación del código CSS para corregir este defecto. Esta corrección pasa por alterar el atributo overflow del DIV contenedor a hidden y establecer el tamaño global al 100%:

div.container {
border: 1px solid #000000;
overflow: hidden;
width: 100%;
}
div.left {
width: 45%;
float: left;
}
div.right {
width: 45%;
float: right;
}

Así conseguimos el efecto deseado.

2 Responses to “Como acomodar elementos DIV de tipo float”

  1. Vicente
    Noviembre 23rd, 2006 | 12:59 pm

    Genial Ricardo!

    He encontrado por internet algunas soluciones a éste problema, pero esta es la que me ha funcionado en todos los casos.

    Salut!

  2. Noviembre 23rd, 2006 | 3:38 pm

    Perfecto :). Yo, hasta encontrar esta receta, lo que hacia es poner la capa que envuelve como float (igual que las interiores), así se comportaba de forma correcta. De cualquier forma, esta solución te permite un poco más de libertad a la hora de posicionarlas …

Leave a reply