Estoy usando un degradado radial como fondo en mi página web, así:
background-image: -webkit-gradient(radial, 100% 100%, 10, 90% 90%, 600, from(#ccc), to(#000));
Funciona, pero cuando el contenido no llena toda la página, el gradiente se corta. ¿Cómo puedo hacer que el <body>
elemento llene toda la página, siempre?
body { width: 100%; height: 100%; }
no funciona?body { width: 100%; height: 100%; }
no funciona Supongo que también tengo que aplicarlo<html>
.Respuestas:
fuente
html { height: 100%; }
realidad.html { height: 100%; }
tampocobody { height: 100%; }
fue suficiente para mí (Opera incluida como prueba) Lo que funcionó mejor fuehtml, body { min-height: 100%; }
Usar altura en lugar de altura mínima dejó mi fondo blanco sin el color de fondo aplicado cuando expandí algunos divs plegables en el medio de mi página.min-height
arreglado eso.100%
a100vh
.En nuestro sitio tenemos páginas donde el contenido es estático y páginas donde se carga con AJAX. En una página (una página de búsqueda), hubo casos en que los resultados de AJAX llenarían más que la página, y casos en los que no devolvería ningún resultado. Para que la imagen de fondo llene la página en todos los casos, tuvimos que aplicar el siguiente CSS:
height
para elhtml
ymin-height
para elbody
.fuente
width: 100%;
.margin: 0;
es suficiente, no es necesario especificar qué unidad usa ceroComo ninguna de las otras respuestas funcionó para mí, decidí publicar esto como una respuesta para otros que buscan una solución que también encontraron el mismo problema. Tanto el html como el cuerpo debían establecerse
min-height
o el gradiente no llenaría la altura del cuerpo.Encontré el comentario de Stephen P para proporcionar la respuesta correcta a esto.
Cuando tengo la altura html (o html y el cuerpo) establecida en 100%,
fuente
Tuve que aplicar el 100% a html y al cuerpo.
fuente
Intente usar unidades de medida de viewport (vh, vm) a nivel del cuerpo
html, cuerpo {margen: 0; relleno: 0; } cuerpo {altura mínima: 100vh; }
Use unidades vh para márgenes horizontales, rellenos y bordes en el cuerpo y reste del valor de altura mínima.
He tenido resultados extraños usando unidades vh, vm en elementos dentro del cuerpo, especialmente al redimensionar.
fuente
Creo que la forma más correcta es establecer css para esto:
fuente
Probé todas las soluciones anteriores y no estoy desacreditando ninguna de ellas, pero en mi caso, no funcionaron.
Para mí, el problema fue causado porque la
<header>
etiqueta tenía unmargin-top
5em y<footer>
tenía un margen inferior de 5em. Los eliminé y en su lugar puse algunospadding
(arriba y abajo, respectivamente). No estoy seguro de si reemplazar el margen fue una solución ideal para el problema, pero el punto es que, si el primer y el último elemento<body>
tiene algunos márgenes, es posible que desee examinarlo y eliminarlos.Mis etiquetas
html
ybody
tenían los siguientes estilosfuente
Si tiene un borde o relleno, entonces la solución
produce la representación imperfecta
Para hacerlo bien en presencia de un borde o relleno
utilizar en su lugar
como señaló Martin , aunque
overflow: hidden
no es necesario.(2018 - probado con Chrome 69 e IE 11)
fuente
body
etiqueta. Sin ese borde,body
llenará exactamente el 100% de la ventana gráfica, puede ver eso con un color de fondo, por ejemplo. La respuesta correcta a esa pregunta fue aceptada hace 7 años y aún es válida.Esto funciona para mi:
fuente