respuesta de Marnix implica el uso de la parte superior y el relleno inferior del elemento de contenido; el mío implica usar el borde superior e inferior.
había tropezado con esta solución por mi cuenta al tratar de encontrar la manera de hacer algo similar sin recurrir a las tablas: hacer que la altura del elemento central 100%, pero a continuación, establezca el modelo de caja de dimensionamiento de "frontera-box "(para que la altura incluya no solo el contenido dentro de la caja sino también los bordes alrededor de la caja), haga que los bordes superior e inferior sean realmente gruesos (como, por ejemplo, 20px), luego use un posicionamiento fijo para superponer el encabezado y pie de página los bordes superiores e inferiores de espesor loco del elemento central.
Aquí es mi muestra CSS:
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#content {
height: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
/* Ensure that the height of the element includes the
box border, not just the content */
border: 0;
border-top: 20px solid white;
border-bottom: 20px solid white;
/* Leave some space for the header and footer to
overlay. */
}
#header,
#footer {
position: fixed;
left: 0;
right: 0;
height: 20px;
background-color: #eee;
/* Specify a background color so the content text doesn't
bleed through the footer! */
}
#header {
top: 0;
}
#footer {
bottom: 0;
}
Esto funciona en Google Chrome 24 para Mac. No lo he probado en otros navegadores, sin embargo.
Esperemos que esto ayude a alguien más que aún tiene la tentación de usar una tabla y obtener el diseño de la página ya hecho. :-)
bueno, es un poco de trabajo ... pero estoy teniendo un problema Digamos que quería establecer un div dentro del contenido a una altura del 100% en relación con la altura del contenido ... ¿cómo? – JCOC611
solo ten cuidado con el colapso de margen. – zzzzBov
@ JCOC611 asegúrese de que 'position: relative' se establezca en el elemento principal cuando desee usar el tamaño relativo. – zzzzBov