Cristalab

                 ¿Quieres registrarte?

Columnas variables de igual altura con div y CSS

Por: MijT
8 de Mayo del 2007
67 de clabLevel
Otros artículos de MijT
18,172 visitas

Lo que voy a explicarles a continuación es como lograr en XHTML y CSS que cuando coloquemos un div dentro de otro, el div interior tenga la misma altura que el div en el que está contenido. Esto es util para diseños de varias columnas (Como un blog) donde quieran que una textura o color especifico siga creciendo en función del contenido de otra columna.

Pasemos al código del CSS:

Código :

#container {
    background-color: #fff;
    overflow: hidden;
    width: 780px;
    margin: 10px auto 5px auto;
    border: 1px solid #000;
}
#content {
    background-color: #fff;
    width: 580px;
    border-right: 200px solid #0099FF; /* ancho y color del menú */
    margin-right: -200px;
    float: left;
}
#menu {
    width: 200px;
    float: left;
    color: #fff;
    background: #0099FF;
    text-align: left;
}


Ahora hagamos uso de este CSS en nuestro html:

Código :

<div id="container">
    <div id="content">
        <p>bla bla bla bla</p>
        <p>bla bla bla bla</p>
    </div>
    <div id="menu">
        bla bla bla bla
    </div>
</div>


Lo que hemos hecho es que darle al div #content además de un color específico un borde derecho de 200px y un margen derecho de -200px. ¿Esto para qué? pues para que cuando insertemos el div #menu este se sobreponga en él y el borde finja ser la columna lateral derecha de manera que al aumentar el tamaño del contenido lo lógico pues es que el borde aumentará paralelamente su altura con relación al contenido, lo cual nos servirá para insertar nuestro menú y se vean de igual altura.

Ejemplo

Sencillo verdad?, espero que esto pueda servirles de ayuda.


Artículos Relacionados


Etiquetas css html

Comentarios | Enviar un comentario
Pero esto es una especia de "faux columns".
Además es una solución que sirve para IE6, porque con Firefox y IE7 tan sólo con ponerle a #menu hieght:100%; es suficiente.
Por: ryuz
wow, a esto sí que le puedo llamar un "workaround".
Por: neojp_blog
Me parece apropiado el tips, pues aun hay muchisimas personas que no usan Firefox y que tampoco han descargado el IE7...
Por: Osvaldo Osorio_blog
útil
Por: RBL_blog
esta interesante, hoy en dia el css es primordial

gracias
Por: malder
Muy buena, había visto parecidos por ahí pero este es bueno. Habrá que ver en qué casos se puede aplicar ;)
Por: frenadoll
hola, estoy haciendo un site con div, necesito hacer que los div ocultos hagan que el div que funje como contenedor (en una capa mas abajo) se ajuste al height de los div ocultos (en capa superior) gracias
Por: omar_blog
Definitivamente es la solución más factible que he podido encontrar, además es muy simple. Buen trabajo. Buena lógica.
Por: Rolando_blog
tengo una pregunta, esto funciona en IE5.X ??

y konqueror ?
safari ??
Por: melvin_blog
Hola Mijt,

tu método funciona muy bien pero, como tú mismo aclaras, el borde FINJE que la segunda columna se aclara.

Si lo que tengo es una separación entre las dos columnas, además de un borde en ambas columnas de distinto color al fondo de la pantalla y al fondo de las columnas, esta solución se hace completamente inviable.

¿Sabes de alguna manera de hacer lo que te pido?

Gracias
Por: ken-blog
disculpen y como se haría para tres columnas??
Gracias..
Por: Mari-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.