Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/09/2011, 17:19
enridp
 
Fecha de Ingreso: mayo-2005
Mensajes: 284
Antigüedad: 19 años
Puntos: 11
Respuesta: Altura de DIV igual algura restante

Hola C2am, la parte roja no es un DIV es la ventana (el viewport).
Y lo del min-height no funciona, porque digamos que tenemos algo como:

Código CSS:
Ver original
  1. #header{
  2.    height: 100px;
  3. }
  4.  
  5. #contenedor{
  6.    min-height: 100%;
  7. }

entonces esto nos da la situacion de la imagen (donde el div azul = contenedor se sale de la ventana).

Para que no se salga podriamos hacer algo como:

Código CSS:
Ver original
  1. #contenedor{
  2.    min-height: 100%;
  3.    margin-top: -100px;
  4. }

o tambien un position:relative; y top: -100px;

Pero entonces el contenido del div azul se superpondria con el del rojo.

Entonces podriamos agregarle un padding-top: 100px;
pero entonces de nuevo el div azul se sale de la ventana.

Entonces podriamos en vez de agregarle el padding al contenedor agregarselo al contenido:

Código CSS:
Ver original
  1. #header{
  2.    height: 100px;
  3. }
  4.  
  5. #contenedor{
  6.    min-height: 100%;
  7.    margin-top: -100px;
  8. }
  9.  
  10. #contenido {
  11.    magin-top: 100px;
  12. }

Y esto creo que funcionaria para las situaciones 1 y 2, pero no para la 3 (donde el contenido tiene que ocupar todo el resto, pero solo el resto) porque si tenemos:

#contenido {
magin-top: 100px;
height: 100%;
}

height:100% pasa a ser de nuevo demasiado y tenemos de nuevo la situacion de la imagen.
(De hecho creo que esto ni me habia funcionado, necesita si o si un height en el contenedor, el min-height no le sirve como referencia).

Para solucionar eso podriamos de nuevo agregar un height:100% al contenedor y ademas un overflow:hidden;

Pero no solo que estaríamos ocultando al contenido (no dimensionandolo acordemente) sino que esto haria que deje de funcionar el min-height (o sea ya no se expanda el contenedor si es necesario).

En fin, la pregunta es mas general por eso no hay un CSS especifico, o sea, la idea es crear justamente el CSS que logra hacer los 3 puntos que explique en mi post anterior (y que basicamente se resumen a poder dimensionar un DIV para que ocupe solo el viewport restante).