Estoy tratando de establecer un div a un cierto porcentaje de altura en CSS
¿Porcentaje de qué?
Para establecer un porcentaje de altura, su elemento padre (*) debe tener una altura explícita. Esto es bastante evidente, ya que si dejas la altura como auto
, el bloque tomará la altura de su contenido ... pero si el contenido en sí tiene una altura expresada en términos del porcentaje del padre que has hecho un poco Captura 22. El navegador se da por vencido y solo usa la altura del contenido.
Entonces, el padre del div debe tener una height
propiedad explícita . Si bien esa altura también puede ser un porcentaje si lo desea, eso solo mueve el problema al siguiente nivel.
Si desea que la altura del div sea un porcentaje de la altura de la ventana gráfica, todos los antepasados del div, incluidos <html>
y <body>
, deben tener height: 100%
, por lo que hay una cadena de alturas de porcentaje explícitas hasta el div.
(*: o, si el div está posicionado, el 'bloque que contiene', que es el antepasado más cercano que también se posicionará).
Alternativamente, todos los navegadores modernos y IE> = 9 admiten nuevas unidades CSS en relación con la altura de la ventana gráfica ( vh
) y el ancho de la ventana gráfica ( vw
):
div {
height:100vh;
}
Ver aquí para más información .
height
propiedad CSS con valores porcentuales: stackoverflow.com/a/31728799/3597276