¿Cuál es la mejor manera de hacer un elemento de 100% de altura mínima en una amplia gama de navegadores?
En particular, si tiene un diseño con un header
y footer
de fijo height
,
¿Cómo hacer que el contenido del medio llene 100%
el espacio intermedio con el footer
fijo en la parte inferior?
min-height: 100vh;
. Esto ajusta la altura igual o mayor al tamaño de la pantalla,vh: vertical height
. Para más información: w3schools.com/cssref/css_units.asp .vh
representaviewport height
y por lo tanto también se puede utilizarvw
para elviewport width
yvmin
para cualquier dimensión es la más pequeña,viewport minimum
.Respuestas:
Estoy usando el siguiente: Diseño CSS - 100% de altura
Funciona bien para mi.
fuente
Para establecer una altura personalizada bloqueada en algún lugar:
fuente
Aquí hay otra solución basada en
vh
, oviewpoint height
, para más detalles, visite las unidades CSS . Se basa en esta solución , que utiliza flex en su lugar.Puede encontrar más información aquí:
fuente
La respuesta de kleolb02 se ve bastante bien. otra forma sería una combinación del pie de página adhesivo y el truco de altura mínima
fuente
Para
min-height
trabajar correctamente con porcentajes, mientras hereda su nodo primariomin-height
, el truco sería establecer la altura del nodo primario1px
y luego el niñomin-height
funcionará correctamente.Página de demostración
fuente
Una
CSS
solución pura (#content { min-height: 100%; }
) funcionará en muchos casos, pero no en todos ellos, especialmente IE6 e IE7.Desafortunadamente, deberá recurrir a una solución de JavaScript para obtener el comportamiento deseado. Esto se puede hacer calculando la altura deseada para su contenido
<div>
y configurándolo como una propiedad CSS en una función:Luego puede configurar esta función como un controlador para
onLoad
yonResize
eventos:fuente
Estoy de acuerdo con Levik, ya que el contenedor principal está configurado al 100% si tiene barras laterales y desea que llenen el espacio para encontrarse con el pie de página, no puede configurarlas al 100% porque también serán el 100 por ciento de la altura principal que significa que el pie de página termina siendo empujado hacia abajo cuando se usa la función clear.
Piénselo de esta manera si su encabezado tiene una altura de 50 píxeles y su pie de página tiene una altura de 50 píxeles y el contenido se ajusta automáticamente al espacio restante, por ejemplo, 100 píxeles y el contenedor de la página tiene el 100% de este valor, su altura será de 200 píxeles. Luego, cuando configura la altura de la barra lateral al 100%, es de 200 px, aunque se supone que debe ajustarse perfectamente entre el encabezado y el pie de página. En cambio, termina siendo 50px + 200px + 50px, por lo que la página ahora tiene 300px porque las barras laterales están configuradas a la misma altura que el contenedor de la página. Habrá un gran espacio en blanco en el contenido de la página.
Estoy usando internet Explorer 9 y esto es lo que obtengo como efecto cuando uso este método 100%. No lo he probado en otros navegadores y supongo que puede funcionar en algunas de las otras opciones. Pero no será universal.
fuente
Primero debe crear un
div
conid='footer'
después de sucontent
div y luego simplemente hacer esto.Su HTML debería verse así:
Y el CSS:
fuente
Prueba esto:
El
div
elemento debajo del contenido div debe tenerclear:both
.fuente
Probablemente la solución más corta (solo funciona en navegadores modernos)
Este pequeño pedazo de CSS hace
"the middle content part fill 100% of the space in between with the footer fixed to the bottom"
:El único requisito es que debe tener un pie de página de altura fija.
Por ejemplo para este diseño:
necesitas este CSS:
fuente
Puede probar esto: http://www.monkey-business.biz/88/horizontal-zentriertes-100-hohe-css-layout/ Eso es 100% de altura y centro horizontal.
fuente
simplemente comparta lo que he usado y funciona bien
fuente
Como se menciona en la respuesta de Afshin Mehrabani, debe establecer la altura del cuerpo y del html al 100%, pero para obtener el pie de página allí, calcule la altura del envoltorio:
fuente