Saltar al contenido

Pie de página en la parte inferior de la página o contenido, el que sea inferior

Nuestro equipo de redactores ha pasado horas buscando la respuesta a tus búsquedas, te dejamos la respuestas de modo que nuestro deseo es resultarte de mucha apoyo.

Solución:

El pie de página pegajoso de Ryan Fait es muy agradable, sin embargo, encuentro que falta su estructura básica *.


Versión Flexbox

Si tiene la suerte de poder usar flexbox sin necesidad de admitir navegadores más antiguos, los pies de página adhesivos se vuelven trivialmente fáciles, y admite un pie de página de tamaño dinámico.

El truco para hacer que los pies de página se peguen al fondo con flexbox es hacer que otros elementos en el mismo contenedor se flexionen verticalmente. Todo lo que se necesita es un elemento de envoltura de altura completa con display: flex y al menos un hermano con un flex valor mayor que 0:

CSS:

html,
body 
  height: 100%;
  margin: 0;
  padding: 0;


#main-wrapper 
  display: flex;
  flex-direction: column;
  min-height: 100%;


article 
  flex: 1;

html,
body 
  height: 100%;
  margin: 0;
  padding: 0;

#main-wrapper 
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100%;

article 
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;

header 
  background-color: #F00;

nav 
  background-color: #FF0;

article 
  background-color: #0F0;

footer 
  background-color: #00F;
here be header
here be content
here be footer


Si no puede usar flexbox, mi estructura base de elección es:

Que no está tan lejos de:

El truco para que el pie de página se adhiera es tener el pie de página anclado al relleno inferior de su elemento contenedor. Esta requiere que la altura del pie de página es static, pero he descubierto que los pies de página suelen ser de static altura.

HTML:

...

CSS:

#main-wrapper 
    padding: 0 0 100px;
    position: relative;


footer 
    bottom: 0;
    height: 100px;
    left: 0;
    position: absolute;
    width: 100%;

#main-wrapper 
  padding: 0 0 100px;
  position: relative;


footer 
  bottom: 0;
  height: 100px;
  left: 0;
  position: absolute;
  width: 100%;


header 
  background-color: #F00;

nav 
  background-color: #FF0;

article 
  background-color: #0F0;

footer 
  background-color: #00F;
here be header
here be content
here be footer

Con el pie de página anclado a #main-wrapper, ahora necesitas #main-wrapper tener al menos la altura de la página, a menos que sus hijos sean más largos. Esto se hace haciendo #main-wrapper tener un min-height de 100%. También hay que recordar que sus padres, html y body también debe ser tan alto como la página.

CSS:

html,
body 
    height: 100%;
    margin: 0;
    padding: 0;


#main-wrapper 
    min-height: 100%;
    padding: 0 0 100px;
    position: relative;


footer 
    bottom: 0;
    height: 100px;
    left: 0;
    position: absolute;
    width: 100%;

html,
body 
  height: 100%;
  margin: 0;
  padding: 0;


#main-wrapper 
  min-height: 100%;
  padding: 0 0 100px;
  position: relative;


footer 
  bottom: 0;
  height: 100px;
  left: 0;
  position: absolute;
  width: 100%;


header 
  background-color: #F00;

nav 
  background-color: #FF0;

article 
  background-color: #0F0;

footer 
  background-color: #00F;
 
here be header
here be content
here be footer

Por supuesto, debería cuestionar mi juicio, ya que este código está obligando a que el pie de página se caiga de la parte inferior de la página, incluso cuando no hay contenido. El último truco consiste en cambiar el modelo de caja que utiliza el #main-wrapper de manera que la min-height de 100% incluye el 100px relleno.

CSS:

html,
body 
    height: 100%;
    margin: 0;
    padding: 0;


#main-wrapper 
    box-sizing: border-box;
    min-height: 100%;
    padding: 0 0 100px;
    position: relative;


footer 
    bottom: 0;
    height: 100px;
    left: 0;
    position: absolute;
    width: 100%;

html,
body 
  height: 100%;
  margin: 0;
  padding: 0;


#main-wrapper 
  box-sizing: border-box;
  min-height: 100%;
  padding: 0 0 100px;
  position: relative;


footer 
  bottom: 0;
  height: 100px;
  left: 0;
  position: absolute;
  width: 100%;


header 
  background-color: #F00;

nav 
  background-color: #FF0;

article 
  background-color: #0F0;

footer 
  background-color: #00F;
 
here be header
here be content
here be footer

Y ahí lo tienes, un pie de página adhesivo con tu estructura HTML original. Solo asegúrate de que el footer‘s height es igual a #main-wrapper‘s padding-bottom, y debería estar listo.


* La razón por la que encuentro fallas en la estructura de Fait es porque establece el .footer y .header elementos en diferentes niveles jerárquicos mientras se agrega un innecesario .push elemento.

El pie de página pegajoso de Ryan Fait es una solución simple que he usado varias veces en el pasado.

HTML básico:

CSS Sticky Footer

CSS:

* 
    margin: 0;

html, body 
    height: 100%;

.wrapper 
    min-height: 100%;
    height: auto !important;
    height: 100%;
    margin: 0 auto -142px; /* the bottom margin is the negative value of the footer's height */

.footer, .push 
    height: 142px; /* .push must be the same height as .footer */


/*

Sticky Footer by Ryan Fait
http://ryanfait.com/

*/

Traducir esto para que sea similar a lo que ya tiene resultados con algo como esto:

HTML:


    

CSS:

* 
    margin: 0;

html, body 
    height: 100%;

.wrapper 
    min-height: 100%;
    height: auto !important;
    height: 100%;
    margin: 0 auto -142px; /* the bottom margin is the negative value of the footer's height */

footer, .push 
    height: 142px; /* .push must be the same height as .footer */

No olvide actualizar el negativo en el margen de la envoltura para que coincida con la altura de su pie de página y presione div. ¡Buena suerte!

Sección de Reseñas y Valoraciones

Tienes la opción de añadir valor a nuestra información colaborando tu veteranía en las acotaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *