Skip to main content

Cómo establecer la altura de un elemento HTML al 100%

French Revolution (part 1) | World history | Khan Academy (Abril 2025)

French Revolution (part 1) | World history | Khan Academy (Abril 2025)
Anonim

Una pregunta frecuente en el diseño de sitios web es "¿cómo se establece la altura de un elemento en 100%"?

Esto puede parecer una respuesta fácil. Simplemente usa CSS para establecer la altura de un elemento en 100%, pero esto no siempre hace que ese elemento se ajuste a toda la ventana del navegador. Averigüemos por qué sucede esto y qué puede hacer para lograr este estilo visual.

Píxeles y porcentajes

Cuando define la altura de un elemento utilizando la propiedad CSS y un valor que utiliza píxeles, ese elemento ocupará mucho espacio vertical en el navegador. Por ejemplo, un párrafo con una

altura: 100px;

ocupará 100 píxeles de espacio vertical en su diseño. No importa qué tan grande sea la ventana de su navegador, este elemento tendrá 100 píxeles de altura.

Los porcentajes funcionan de manera diferente a los píxeles. De acuerdo con la especificación W3C, las alturas porcentuales se calculan con respecto a la altura del contenedor. Así que si pones un párrafo con una

altura: 50%;

Dentro de un div con una altura de 100 px, el párrafo tendrá 50 píxeles de altura, que es el 50% de su elemento principal.

Por qué fracasan las alturas porcentuales

Si está diseñando una página web y tiene una columna que le gustaría ocupar toda la altura de la ventana, la inclinación natural es agregar un

altura: 100%;

a ese elemento. Después de todo, si configura el

anchura

a

ancho: 100%;

El elemento ocupará todo el espacio horizontal de la página, por lo que

altura

debería funcionar igual, ¿verdad? Desafortunadamente, este no es el caso en absoluto.

Para comprender por qué sucede esto, debe comprender cómo los navegadores interpretan altura y anchura. Los navegadores web calculan el ancho total disponible en función de la amplitud con la que se abre la ventana del navegador.

anchura

Si no establece ningún valor en sus documentos, el navegador automáticamente fluirá el contenido para llenar todo el ancho de la ventana (el 100% del ancho es el valor predeterminado).

El valor de altura se calcula de forma diferente al ancho. De hecho, los navegadores no evalúan la altura en absoluto a menos que el contenido sea tan largo que salga de la ventana gráfica (lo que requiere barras de desplazamiento) o si el diseñador web establece un absoluto para un elemento en la página.

altura

De lo contrario, el navegador simplemente deja que el contenido fluya dentro del ancho de la ventana gráfica hasta que llegue al final. La altura no se calcula en absoluto.

Los problemas ocurren cuando establece una altura porcentual en un elemento que tiene elementos primarios sin alturas establecidas; en otras palabras, los elementos primarios tienen un valor predeterminado.

altura: auto;

En efecto, le está pidiendo al navegador que calcule una altura a partir de un valor no definido. Dado que eso equivaldría a un valor nulo, el resultado es que el navegador no hace nada.

Si desea establecer un alto en sus páginas web en un porcentaje, debe establecer el alto de cada Elemento padre del que desea que se defina la altura. En otras palabras, si tienes una página como esta:

Contenido aqui

Es probable que desee la

div

y el párrafo en él para tener una altura del 100%, pero que div realmente tiene dos elementos padres:

y. Para definir la altura de la

div

a una altura relativa, debe establecer la altura de la

cuerpo

y

html

elementos también. Así que necesitarías usar CSS para establecer la altura no solo de la división sino también del cuerpo y los elementos HTML. Esto puede ser un desafío, ya que puede abrumarse rápidamente con todo lo que se establece en 100% de altura, solo para lograr el efecto deseado.

Algunas cosas a tener en cuenta cuando se trabaja con 100% de altura

Ahora que sabe cómo configurar el alto de los elementos de su página al 100%, puede ser emocionante salir y hacer eso en todas sus páginas, pero hay algunas cosas que debe tener en cuenta:

  • Los márgenes y el relleno pueden agregar una barra de desplazamiento donde no desea uno.Una de las cosas más molestas que he encontrado al trabajar con alturas de porcentaje (y anchos) es que luego el relleno y los márgenes en esos mismos elementos pueden agregar barras de desplazamiento a la página, aunque todo el contenido se muestra sin necesidad de barras de desplazamiento. Esto se debe a que la altura o el ancho del elemento es lo primero que se calcula. Luego se agregan los márgenes y los rellenos. Entonces, si tienes un elemento con una altura del 100% y márgenes superior e inferior de 10 píxeles cada uno, habrá una barra de desplazamiento para los 20 píxeles adicionales. Recuerde, el modelo de cuadro de CSS agrega margen, borde y relleno al tamaño de un elemento, por lo que el 100% con cualquiera de esos otros valores de modelo de cuadro será en realidad más del 100%.
  • Si su contenido ocupa más que la altura definida, sobrescribirá cualquier cosa posterior.En otras palabras, si tiene un diseño con una columna que tiene un 80% de altura y el contenido que está dentro ocupará el 100% de la altura, ese 20% adicional continuará debajo de la columna y romperá el diseño visual de tu pagina Si hay contenido debajo de esa columna, el texto simplemente escribirá sobre la parte superior de la misma. A menudo veo que esto sucede cuando un diseñador web intenta forzar la altura de una página y lo hace funcionar perfectamente para el lanzamiento, pero cuando el contenido de esa página cambia en el futuro, sus alturas absolutas interrumpen totalmente el flujo de la página. Esto es doblemente cierto cuando estás creando sitios web sensibles cuyo ancho y alto deben cambiar con el tamaño de la ventana gráfica.

Para solucionar esto, también puede establecer la altura del elemento. Si lo pones a

auto,

Las barras de desplazamiento aparecerán si son necesarias, pero desaparecerán cuando no lo sean.Eso corrige el salto visual, pero agrega barras de desplazamiento donde es posible que no las quiera.

Usando Unidades Viewport

Otra forma de enfrentar este desafío es experimentar con las unidades CSS Viewport. Al utilizar la unidad de medida de altura de ventana gráfica, puede ajustar el tamaño de los elementos para ocupar una altura definida de la ventana gráfica, y eso cambiará a medida que la ventana gráfica cambie. Esta es una excelente manera de obtener imágenes del 100% de altura en una página, pero aún así debe ser flexible para diferentes dispositivos y tamaños de pantalla.