2014-07-18 1 views
0

Je sais qu'il y a des tonnes de questions à ce sujet, mais j'ai cherché Google depuis 4 jours maintenant et rien ne semble fonctionner pour moi. J'essaie d'implémenter un pied collant - ce qui signifie que lorsque le contenu est insuffisant pour remplir l'écran, le pied de page se trouve en bas de l'écran et lorsqu'il y a suffisamment de contenu pour remplir l'écran, le pied reste en dessous de ce contenu. vous faites défiler vers le bas. J'ai essayé environ 15 solutions différentes de pied collant et alors que la plupart d'entre elles fonctionnent en théorie, ma situation particulière ne cesse de me gâcher mon contenu a des frontières à gauche et à droite qui devraient s'étendre jusqu'au pied de page. Tout ce qui implique la poussée ne fonctionnera pas.CSS Sticky Footer - Obtention de bordure de contenu pour étendre au pied de page

est ici l'incarnation la plus récente de ce que j'ai essayé:

HTML

<div id="container"> 

    <div id="header"> 
    <!--Banner goes here--> 
    <div id="nav">Navigation Links</div> 
    </div> 

    <div id="content"> 
    <p>Content Goes Here</p> 
    </div> 

    <div id="footer"> 
    </div> 

</div> 

CSS

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

#container { 
    min-height: 100%; 
    position: relative; 
} 

#content { 
    padding: 20px; 
    border-left: solid 30px lightblue; 
    border-right: solid 30px lightblue; 
} 


#footer { 
    position: absolute; 
    bottom: 0; 
    width: 100%; 
    height: 80px; 
    border-top: solid; 
    text-align: center; 
    padding-top: 10px; 

}

Comment puis-je obtenir ce pied de page collant à travailler tout en obtenant également ces frontières bleues pour s'étendre jusqu'au pied de page?

Répondre

0

Voici une solution qui utilise box-shadow pour créer le "border:" http://jsfiddle.net/FT8KR/. Les valeurs de pixels étaient plutôt arbitraires, alors jouez avec celles-ci. La bordure peut également être utilisée, mais elle pousse la barre de défilement plus vers l'intérieur, alors que ce n'est pas le cas de shadow-box.

#container { 
    height: 100%; 
    margin: 0 auto -80px; 
    overflow: auto; 
    padding-bottom: 80px; 
    padding: 0 30px; 
    box-shadow: inset -48px 0 0 lightblue, 
       inset 30px 0 0 lightblue; 
} 
+0

C'est génial, mais je vois deux problèmes ... 1. le boxshadow coupe l'en-tête. Il ne devrait pas contourner les liens d'en-tête ou de nav, juste le contenu. Deuxièmement, le pied de page colle au bas de l'écran au lieu du bas du contenu lorsque le contenu est trop grand pour l'écran. – alanafrankly

+0

Compris! Je ne sais pas trop comment, mais je l'ai fait! – alanafrankly

+0

Même ici. Voici le pied de page qui colle. L'en-tête a été ajusté en utilisant des marges négatives et la boîte-ombre a été remplacée en utilisant simplement la frontière simple. Voici un violon: http://jsfiddle.net/vhg3B/. – DRD

0
body{ 
    padding-bottom: 90px 
} 

#footer { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    right:0 ; 
    height: 80px; 
    border-top: solid; 
    text-align: center; 
    padding-top: 10px; 
} 
+0

C'est plus ou moins ce que j'ai implémenté récemment. Peut également exiger "hauteur: 100%" sur le html/body/container. – Katana314

+0

je ne peux pas vous comprendre! mais pour moins de corps de fichier {padding-bottom: 90px #footer { position: absolue; en bas: 0; gauche: 0; droite: 0; hauteur: 80px; border-top: solide; text-align: center; rembourrage-top: 10px; }} –

+0

Cela ne semble pas résoudre le problème avec les bordures. Ils s'arrêtent toujours là où le contenu se trouve au lieu de s'étendre jusqu'au pied de page. – alanafrankly