Saludos a la lista,

Tengo un problema con clear:both, a ver si logro explicarme bien. En mi diseño principal, tengo las típicas tres columnas: la del medio para el contenido principal y las otras dos para opciones secundarias. Esto lo consigo con un float:left y un float:right. Hasta aquí bien.

En una de las páginas me veo obligado, en la columna del medio, la principal, a flotar algunos elementos. La pregunta del millón: ¿cómo hago para que esos elementos no se salgan de su div padre?

No puedo inventarme un div debajo y hacer un clear:both a secas, pues entonces me deja un espacio que llega hasta el fin de las otras dos columnas. Es decir, hace que no flote nadie a su alrededor. Yo lo que quiero es que floten las otras columnas pero no floten los elementos que están en la misma columna.

A ver, lo intento explicar con un dibujo ascii.

Esto es lo que pasa antes de nada:
 _________   ___________________   _________
| columna | | columna principal | | columna |
|izquierda| | _______________   | | derecha |
|         | ||               |  | |         |
| float:  | || elemento      |__| | float:  |
|  left   |  |   flotado     |    |  right  |
|         |  |               |    |         |
|         |  |_______________|    |         |
|         |                       |         |
|         |                       |         |
|         |                       |         |
|         |                       |_________|
|_________|

Y esto depués de añadirle un div o un p y hacerle un clear:both:
 _________   ___________________   _________
| columna | | columna principal | | columna |
|izquierda| | _______________   | | derecha |
|         | ||               |  | |         |
| float:  | || elemento      |  | | float:  |
|  left   | ||   flotado     |  | |  right  |
|         | ||               |  | |         |
|         | ||_______________|  | |         |
|         | |                   | |         |
|         | |                   | |         |
|         | |                   | |         |
|         | |                   | |_________|
|_________| |                   |
            | _________________ |
            || clear:both      ||
            ||_________________||
            |___________________|

El efecto que quiero es este:
 _________   ___________________   _________
| columna | | columna principal | | columna |
|izquierda| | _______________   | | derecha |
|         | ||               |  | |         |
| float:  | || elemento      |  | | float:  |
|  left   | ||   flotado     |  | |  right  |
|         | ||               |  | |         |
|         | ||_______________|  | |         |
|         | |___________________| |         |
|         |                       |         |
|         |                       |         |
|         |                       |_________|
|_________|

Ponerle un margin-top fijo al siguiente elemento o al div/p auxiliar del que hablo tampoco me vale, porque el contenido del elemento flotado es dinámico, y no es que no sepa lo que va a ocupar, es que (como es javascript) su altura puede variar mientras estemos viendo la página, según nuestro comportamiento.

Espero haberme explicado bien, y espero que alguien me pueda ayudar.

Víctor, ¡Gracias!


--
Usando el revolucionario cliente de correo de Opera: http://www.opera.com/m2/
_______________________________________________
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a [email protected]
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo

Responder a