CSS Push Div en la parte inferior de la página
Mire ese enlace, quiero lo contrario: cuando el contenido se desborda a las barras de desplazamiento, quiero que mi pie de página esté siempre en la parte inferior completa de la página, como Stack Overflow.
Tengo un div con id="footer"
y este CSS:
#footer {
position: absolute;
bottom: 30px;
width: 100%;
}
Pero todo lo que hace es ir a la parte inferior de la ventana gráfica, y permanece allí incluso si se desplaza hacia abajo, por lo que ya no está en la parte inferior.
Imagen:
Lo sentimos si no se aclara, no quiero que se solucione, solo para que esté en la parte inferior real de todo el contenido.
css
positioning
css-position
footer
H Bellamy
fuente
fuente
position:fixed
, aunque esa no será exactamente la mejor manera de hacerloRespuestas:
Esto es precisamente para lo que
position: fixed
fue diseñado:Aquí está el violín: http://jsfiddle.net/uw8f9/
fuente
fixed
pie de página, cuando hay suficiente contenido para hacerlo. Eso es lo suficientemente bueno para mí. Por supuesto, puedo ver cómo los pies de página muy grandes como lo que tienen en stackoverflow no funcionarían bien con elfixed
enfoque, pero para un pie de página básico de una línea, este enfoque funciona bien en mi opinión.Desafortunadamente, no puede hacer esto sin agregar un poco de HTML adicional y hacer que una pieza de CSS dependa de otra.
HTML
Primero necesitas envolver tu
header
,footer
y#body
en un#holder
div:CSS
Luego establezca
height: 100%
enhtml
ybody
(cuerpo real, no su#body
div) para asegurarse de que puede establecer la altura mínima como un porcentaje en los elementos secundarios.Ahora configúralo
min-height: 100%
en el#holder
div para que llene el contenido de la pantalla y úsaloposition: absolute
para colocar el pie de página en la parte inferior del#holder
div.Desafortunadamente, debe aplicar
padding-bottom
al#body
div que tiene la misma altura quefooter
para asegurarse de quefooter
no se encuentre por encima de ningún contenido:Ejemplo de trabajo, cuerpo corto: http://jsfiddle.net/ELUGc/
Ejemplo de trabajo, cuerpo largo: http://jsfiddle.net/ELUGc/1/
fuente
width
o ambosleft
yright
luego los valores se establecen enauto
y el elemento se ajustará para ajustarse a su contenido. Especificarwidth: 100%
oleft: 0
yright:0
garantiza que el elemento en posición absoluta ocupa todo el ancho del elemento contenedorheight=100%
en todos los elementos que lo contienen, incluidos los<form>
elementos.Acabo de encontrar otra solución, ya que el ejemplo anterior tiene un error (error en algún lugar) para mí. Variación de la respuesta seleccionada.
para el diseño html
Bueno, de esta manera no es compatible con el navegador antiguo, sin embargo, es aceptable que el navegador antiguo se desplace 30 píxeles hacia abajo para ver el pie de página
fuente
Me doy cuenta de que dice no usar esto para 'responder a otras respuestas' pero desafortunadamente no tengo suficiente representante para agregar un comentario en la respuesta apropiada (!) Pero ...
Si tiene problemas en asp.net con la respuesta de 'Me duele la cabeza', debe agregar 'height: 100%' a la etiqueta FORM principal generada, así como las etiquetas HTML y BODY para que esto funcione.
fuente
No cerraste tu; después de la posición: absoluta. De lo contrario, su código anterior habría funcionado perfectamente.
fuente
Comentaría si pudiera, pero todavía no tengo permisos, por lo que publicaré una pista como respuesta, para un comportamiento inesperado en algunos dispositivos Android:
Posición: Fijo solo funciona en Android 2.1 a 2.3 utilizando la siguiente metaetiqueta:
ver http://caniuse.com/#search=position
fuente
Esta es una solución intuitiva que utiliza el comando de ventana gráfica que solo establece la altura mínima a la altura de la ventana gráfica menos la altura del pie de página.
fuente
He resuelto un problema similar al poner todo mi contenido principal dentro de una etiqueta div adicional (id = "exterior"). Luego moví la etiqueta div con id = "pie de página" fuera de esta última etiqueta div "externa". He usado CSS para especificar la altura de "exterior" y he especificado el ancho y la altura de "pie de página". También he usado CSS para especificar el margen izquierdo y el margen derecho del "pie de página" como automático. El resultado es que el pie de página se encuentra firmemente en la parte inferior de mi página y también se desplaza con la página (aunque todavía aparece dentro del div "externo", pero felizmente fuera del div "contenido" principal, lo que parece extraño, pero es donde lo quiero)
fuente
Solo quiero agregar: la mayoría de las otras respuestas funcionaron bien para mí; ¡Sin embargo, les llevó mucho tiempo hacer que funcionaran!
¡Esto se debe a que la configuración
height: 100%
solo recoge la altura del div padre!Entonces, si todo su html (dentro del cuerpo) tiene el siguiente aspecto:
Entonces lo siguiente estará bien:
... como "titular" recogerá su altura directamente del "cuerpo".
Felicitaciones a My Head Hurts, ¡cuya respuesta fue la que terminé poniendo a trabajar!
Sin embargo. Si su html está más anidado (porque es solo un elemento de la página completa, o está dentro de una determinada columna, etc.), entonces debe asegurarse de que cada elemento que lo contiene también se haya
height: 100%
establecido en el div. De lo contrario, la información sobre la altura se perderá entre "cuerpo" y "titular".Por ejemplo, lo siguiente, donde he agregado la clase de "altura completa" a cada div para asegurarme de que la altura llegue hasta nuestros elementos de encabezado / cuerpo / pie de página:
Y recuerde establecer la altura en la clase de altura completa en el CSS:
Eso solucionó mis problemas!
fuente
Si tiene un pie de página de altura fija (por ejemplo, 712 px), puede hacer esto con js así:
fuente
fuente
utilizar la clase de arranque de fondo fijo
fuente