Se trata de un diseño de 3 columnas con una barra arriba y otra barra abajo.
Las barras azules tienen una altura de 25 pixeles cada uno pero el ancho siempre se mantiene al tamaño de la ventana.
El diseño de las 3 columnas tenga las dos primeras columnas (amarillo y rosa) que sean de un tamaño estático (El amarillo de 25 pixeles de ancho y el rosa de 200 pixeles). y el contenido (lo que se muestra de color blanco) debe de usar todo el resto del espacio que queda.
Ahora viene el problema:
Resulta que mediante Javascript hago colapsar el sidebar (de color rosa). Ésto hace que de repente aparezca un espacio sin nada ya que el contenido (de color blanco) es de posición absoluta. He conseguido tener un efecto parecido al que deseo usando el atributo Relative y Block en las 3 columnas, sin embargo ésto tan solo arregla el problema horizontal y trae con sigo un nuevo problema, que es el vertical, que ya no ocupa el 100% de espacio entre la barra superior y la inferior.
La barra amarilla tambien puede ser colapsada mediante javascript, con lo que el contenido (color blanco) puede terminar ocupando el 100% del ancho.
Sería fácil decir que se pueden ajustar las 3 columnas tocando el codigo CSS directamente desde javascript, pero ésto es intensivo de CPU y un metodo bastante rústico y prefiero usar CSS antes que javascript para realizar éstas tareas.
Que puedo hacer? Agradezco todas las ideas y soluciones. Un saludo, Robert.
[url=http://postimage.org/image/44d1zw10/][img]http://s2.postimage.org/1vxbwwfl5/Captura.jpg[/img][/url]
Aquí el código de muestra:
Código HTML:
Ver original
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <link rel="stylesheet" type="text/css" href="http://meyerweb.com/eric/tools/css/reset/reset.css" /> <style type="text/css"> /* BARRA SUPERIOR */ .barra_arriba{ min-width: 550px; top: 0px; left: 0px; right: 0px; position: relative; background: blue; height:25px; border-bottom:1px solid #B5B5B5; } /* BARRA DE ABAJO */ .barra_abajo{ min-width: 550px; bottom: 0px; left: 0px; right: 0px; position: absolute; background: blue; height:25px; border-top:1px solid #B5B5B5; } /* BARRA IZQUIERDA */ .barra_izquierda{ top: 25px; float: left; left: -1px; bottom: 25px; position: absolute; display: block; background: yellow; border-right:1px solid #B5B5B5; border-bottom:1px solid #B5B5B5; width: 25px; } /* BARRA MENU IZQUIERDA */ .menu{ top: 26px; bottom: 25px; left: 25px; float: left; position: absolute; display: block; background: pink; z-index: 10000; border-right:1px solid #B5B5B5; border-bottom:1px solid #B5B5B5; } .menu_contenido{ top: 0px; bottom: 0px; position: relative; height: 100%; background: rgba(255, 255, 255, 0.7); margin-right: 0px; width: 200px; /* TAMAÑO DEL SIDEBAR */ visibility: visible; } /* CONTENIDO */ .contenido{ top: 26px; right: 0px; bottom: 25px; position: absolute; background: rgba(255, 255, 255, 0.2); z-index: 1; left: 225px; overflow: auto; } </style> </head> <body> <div class="menu"> <div class="menu_contenido"> Opcion 1<br> Opcion 2<br> Opcion 3<br> </div> </div> </body> </html>