2011-04-01 17 views
24

Este es mi código:¿Cómo puedo forzar que mi pie de página se adhiera a la parte inferior de cualquier página en CSS?

#footer { 
    font-size: 10px; 
    position:absolute; 
    bottom:0; 
    background:#ffffff; 
} 

no tengo idea de lo que está mal con esto - ¿alguien puede ayudar?

EDITAR: Para obtener más claridad sobre lo que está mal: El pie de página se muestra en la parte inferior como se espera cuando se carga la página. Sin embargo, cuando la altura de la página web es> mayor que las dimensiones en la pantalla, de modo que aparece una barra de desplazamiento, el pie de página permanece en esa misma ubicación. Es decir, cuando el alto de la página es < = 100%, el pie de página está en la parte inferior. Sin embargo, cuando la altura de la página es> 100%, el pie de página NO está en la parte inferior de la página, sino en la parte inferior de la pantalla visible.

EDITAR: Sorprendentemente, ninguna de las siguientes soluciones funcionó. Terminé implementando una barra lateral en su lugar.

+2

Por qué ? ¿Qué pasa? – SLaks

+0

Duplicado de [¿Cómo se consigue que el pie de página permanezca en la parte inferior de una página web?] (Http://stackoverflow.com/questions/42294/how-do-you-get-the-footer-to-stay- at-the-bottom-of-a-web-page) – Phrogz

+2

Lo que dice SLaks es: esta es una pregunta pobre, ya que no ha descrito los resultados que desea ni los resultados que está obteniendo. Lo que has escrito es un código CSS válido, eso es todo lo que puedo decirte. Además, como se señaló anteriormente, esta pregunta ha sido formulada y respondida previamente. – Phrogz

Respuesta

27

Probablemente se esté buscando this example:

<div class="wrapper"> 
    Your content here 
    <div class="push"></div> 
</div> 
<div class="footer"> 
    Your footer here 
</div> 

CSS:

Para un pie de página 142 píxeles

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/ 

*/ 
+0

¿Qué pasa con los pies de página de altura variable? –

+0

@DustinGraham: Tendrá que usar flex y mover la barra de desplazamiento al contenido – SLaks

1

la envoltura es el resto de la página. Los valores de margen/altura negativos/positivos son donde ocurre la magia.

.wrapper 
    { 
    min-height: 100%; 
    height: auto !important; 
    height: 100%; 
    margin: 0 auto -142px; 
    } 
.footer, .push 
    { 
    height: 142px; /* .push must be the same height as .footer */ 
    } 
0

No utilizar la posición: absoluta; para cualquier pie de página ya que la página cambiará de altura. Si es absoluta, su pie de página no se moverá con la altura de la página.

Quiere utilizar el método de ryan fait.

Aunque personalmente lo haría así;

.wrap {margin: auto; width: 980px;} 
#content {min-height: 600px;} 
#footer {height: 300px;} 

<div class="wrap"> 
<div id="content"> 
</div> 
</div> 
<div id="footer"> 
<div class="wrap"> 
</div> 
</div> 

De esta manera no tiene que perder el tiempo con los márgenes negativos y el relleno. También esto puede ser fácilmente una parte de HTML5 cambiar #footer a

<footer> 
</footer> 
+0

¿De dónde sacó 300px y 600px? Solución no muy genérica. – SummerBreeze

0
#footer { clear:both; position:fixed; width:100%; height:50px; bottom:0; background:black;} 
8

Prueba esto:

position: fixed; 
bottom: 0; 
+3

Esto colocará el pie de página en la parte inferior de la ventana, pero no en la parte inferior de la página (si la página es más alta que la ventana) ... – severin

-3

Por qué no con jQuery?

Coloque un divisor de envoltura entre el encabezado y el pie de página y asigne una propiedad de altura mínima para el envoltorio con jquery igual a la diferencia entre la altura del documento y (altura del encabezado + altura del pie de página).

<script type="text/javascript"> 
$(document).ready(function(){ 
var dh = $(document).height(); //document height here 
var hh = $('header').height(); //header height 
var fh = $('footer').height(); //footer height 
var wh = Number(dh - hh - fh); //this is the height for the wrapper 
$('#wrapper').css('min-height', wh); //set the height for the wrapper div 
}); 
</script> 
0

Esto es lo que hice y causó que mi pie de página se quedara en la parte inferior.

.footer2{ 
background-color:#606060 ; 
color: #ffffff; 
height: 30px; 
bottom:0px; 
position:fixed; 
width:100%; 
} 
0
.footer-small, .push { 
    background-color: #2C3E50; 
    position: fixed; 
    padding-top: 5px; 
    clear:both; 
    width: 100%; 
    bottom:0px; 
    z-index: 0; 
} 

esto también está trabajando para mí ....

0

me costó encontrar una solución, ya que ninguno de los sugirió conseguido lo que quería:

  • Si hay al menos contenido, permanezca en la parte inferior de la página, no en el medio.
  • Si hay suficiente contenido, no se adhiera y superponga el contenido, simplemente permanezca en la parte inferior.
  • Esconderlo desde la primera vista, por lo que solo si el usuario se desplaza hacia abajo se ve el pie de página.

Esto es lo que funcionó para mí:

html:

<body> 
    <div class="page-wrapper"> 
    <h1> 
     Page 
    </h1> 
    </div> 
    <footer> 
    Footer here 
    </footer> 
</body> 

css:

body { 
    height: 100%; 
    width: 100%; 
} 

.page-wrapper { 
    min-height:100vh; /*1vh = 1% of browser screen height*/ 
} 

footer{ 
    position: relative; 
    width: 100%; 
    bottom: 0px; 
} 

Here en acción.

+0

[Esta respuesta] (http://stackoverflow.com/a/ 26090114/5802289) va en la misma dirección y se explica mucho mejor. – J0ANMM

1

que tenían la misma pregunta, vinieron aquí en busca de una respuesta, no lo encontró, y luego trató algunos experimentos por mi cuenta y finalmente obtuvo la solución:

#body { 
 
    overflow-y: 0 auto; 
 
} 
 
#footer { 
 
    color: #fff; 
 
    background-color: rgba(0,0,0,0.6); 
 
    position: fixed; 
 
    padding: 10px; 
 
    top: 100vh; 
 
    margin-top: -100px; 
 
    width: 100%; height: 100px; 
 
}
<div id="body"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p> 
 
</div> 
 
<div id="footer"> 
 
    <span>Some dummy Text</span> 
 
</div>

Cuestiones relacionadas