Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] ¿Cómo lograr siempre un height: 100%?

Estas en el tema de ¿Cómo lograr siempre un height: 100%? en el foro de CSS en Foros del Web. Hola, mis amigos, voy al grano! CONTEXTO. Sé que este tema es viejo y se han dado miles de respuestas. Pero creo que mi caso ...
  #1 (permalink)  
Antiguo 02/11/2017, 13:56
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Sonrisa ¿Cómo lograr siempre un height: 100%?

Hola, mis amigos, voy al grano!

CONTEXTO. Sé que este tema es viejo y se han dado miles de respuestas. Pero creo que mi caso es diferente. Recientemente tuve que crear varios documentos HTML. Para el sistema de rejillas usé Uikit. Estos documentos HTML necesitan una imagen de background para el body.

ESTRUCTURA BÁSICA HTML
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.     <meta charset="UTF-8">
  4.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.     <title></title>
  7.     <meta name="viewport" content="width=device-width, initial-scale=1">
  8. </head>
  9.  
  10.     <div class="uk-height-1-1">
  11.         <div class="uk-grid uk-height-1-1">
  12.  
  13.             <div class="uk-width-1-1">
  14.                 <div class="uk-width-expand">
  15.                     <!-- Aquí va el menú -->
  16.                 </div>
  17.             </div>
  18.  
  19.  
  20.             <div class="uk-width-1-1">
  21.                 <div class="uk-width-expand">
  22.                     <!-- Aquí va el contenido general -->
  23.                 </div>
  24.             </div>
  25.  
  26.  
  27.             <div class="uk-width-1-1 uk-vertical-align">
  28.                 <div class="uk-vertical-align-bottom uk-width-expand">
  29.                     <!-- Aquí va el footer, que siempre se pone en el fondo del body gracias al: uk-vertical-align-bottom  -->
  30.                 </div>
  31.             </div>
  32.  
  33.         </div>
  34.     </div>
  35.  
  36. </body>
  37. </html>

PROBLEMA. Algunas veces la altura del body es más chica que el contenido, así que la imagen de background no cubre todo el contenido. Es decir, parte del contenido queda fuera del body. Algunas veces puedo arreglar esto poniendo 100% al body. Otras veces se arregla poniendo auto. Nunca es la misma solución. Esto pasa ponga o no:
Código CSS:
Ver original
  1. body, html {width: 100%; height: 100%;}

Por favor, ¿qué estoy haciendo mal? ¿Es normal que tenga que alternar entre height:auto y height:100% para cada documento, en desktop y mobile?

Saludos
  #2 (permalink)  
Antiguo 03/11/2017, 14:44
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: ¿Cómo lograr siempre un height: 100%?

No hay manera de que el contenido sea más grande que el body.

Lo que probablemente está pasando es de que estás usando una pocisión absoluta que está sacando del universo a tu contenido. En general es una mala práctica. Muy mala.

Cuando el contenido es poco busca usar un sticky footer.

Y específicamente para tu problema busca usar el viewport height. https://www.google.com.mx/search?q=viewport+height+css

Pero puede ser tan fácil como poner la imagen de fondo con background-image.

Trata quitando también el margin y el padding de esos elementos.


Como comentario aparte.
Usa html semántico.

Código HTML:
Ver original
  1. <nav></nav>
  2.  
  3. <main>
  4. </main>
  5.  

Listo, no hacen falta explicaciones ni anidados extra.

La etiqueta main puede no estar soportada por todos los navegadores, pero no te afecta. Es simplemente un contenedor.
  #3 (permalink)  
Antiguo 15/11/2017, 14:49
Avatar de g3kdigital  
Fecha de Ingreso: noviembre-2013
Ubicación: En mi apartamento en bogotá
Mensajes: 208
Antigüedad: 10 años, 5 meses
Puntos: 39
Respuesta: ¿Cómo lograr siempre un height: 100%?

Prueba esto:

Código CSS:
Ver original
  1. body{
  2. min-height: 100vh
  3. }
__________________
Puedes ser el tipo de persona que se amarga por lo inevitable o aceptar el reto de superarse siempre e ir a la par con el progreso.

WEB: G3K.co | codepen.io/g3kdigital
  #4 (permalink)  
Antiguo 16/11/2017, 10:28
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: ¿Cómo lograr siempre un height: 100%?

Contradiciendo al compañero @Rafael
Cita:
No hay manera de que el contenido sea más grande que el body.
Claro que el contenido puede y en muchos casos el contenido sera mas grande que el body, la culpa esta en estas reglas.
Código CSS:
Ver original
  1. body, html {width: 100%; height: 100%;}

Con esto le estas diciendo que el body debe ser el 100% de tu ventana del navegador, lo que da cabida y ocasiona que el contenido pueda quedar oculto y salirse del body.

lo que debes usar es min-height y min-width

Por otro lado quizás el problema no es el body sino la imagen que quieres incrustar, aunque sin ver como metes esa imagen y como es, no te podemos ayudar mas.
  #5 (permalink)  
Antiguo 29/12/2017, 16:48
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
De acuerdo Respuesta: ¿Cómo lograr siempre un height: 100%?

Gracias a todos por responder. Finalmente logré sacar adelante el proyecto que tenía, ya ni recuerdo bien cómo logré solucionar el problema.

Cita:
Iniciado por ArturoGallegos Ver Mensaje
Contradiciendo al compañero @Rafael
...lo que debes usar es min-height y min-width
Eso es precisamente lo que me voy a anotar para la próxima.

Rafael. No conocía el concepto de Sticky footer, buscando, encontré esto en CSS Tricks: https://css-tricks.com/couple-takes-sticky-footer/ Ya probé el CSS mencionado ahí y se ve genial!

g3kdigital Eso lo intenté, y quién sabe qué cochinadas seguramente estaba haciendo yo con mi CSS, que en ciertos casos funcionaba perfectamente con 100vh y otras no, y en las que no funcionaba con 100vh sí funcionaba con 100%.

Saludos y gracias a todos.

Última edición por berkeleyPunk; 29/12/2017 a las 17:34

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:55.