2014-10-13 13 views
8

Sono nuovo a Bootstrap e sto cercando di usarlo con Symfony2. Ho già una barra topbar principale che viene utilizzata per la navigazione. Il mio problema è quando provo ad aggiungere un footer simile che è appiccicoso in basso, ma si sovrappone al mio contenuto. Sto usando uno script JQuery per evitare il problema per la barra di navigazione in alto, in questo modo:Contenuto sovrapposto appiccicoso footstart Bootstrap

$(document).ready(function(){ 
     $(document.body).css('padding-top', $('#topnavbar').height()); 
     $(window).resize(function(){ 
      $(document.body).css('padding-top', $('#topnavbar').height()); 
     }); 
    }); 

La struttura del mio layout principale Twig è come questo:

<div class="navbar navbar-default navbar-fixed-top" id="topnavbar"> 
     <div class="container-fluid"> 
     </div> 
    </div> 
    {% block body %} 
    {% endblock %} 
    <footer class="footer navbar-fixed-bottom"> 
    </footer> 

mio CSS è originale. Ho provato con margin bottom o padding bottom ma la sovrapposizione del mio contenuto (nel {% block body%}) è sempre presente e non so cosa fare per risolverlo. Qualcuno ha un'idea?

risposta

7

Come standard, questo è il comportamento previsto per intestazioni e piè di pagina Bootstrap: si attaccano in alto o in basso e si sovrappongono al contenuto principale. La soluzione per piè di pagina è di aggiungere margin-bottom: [footer height]; al body, come nel customisation example on the Bootstrap site:

appiccicoso-footer.css

body { 
    /* Margin bottom by footer height */ 
    margin-bottom: 60px; 
} 

.footer { 
    position: absolute; 
    bottom: 0; 
    width: 100%; 
    /* Set the fixed height of the footer here */ 
    height: 60px; 
    background-color: #f5f5f5; 
} 

Lei parla margin-bottom nella sua interrogazione, quindi se questo non funziona per potresti forse postare ciò che hai effettivamente provato?

P.S. Questo probabilmente non ha nulla a che fare con Symfony!

+0

Ecco la schermata di questo risultato: [link] (http://i.imgur.com/0RCYehs.png) Ho provare un sacco di cose come body {margin: 0 0 60px; } o cambia il mio script jquery aggiungendo bottom.nav come: $ (document.body) .css ('margin-bottom', $ ('# botnavbar'). height()); (con l'id giusto sul mio footer). Ma nulla ha funzionato finora. – lll

+0

Penso che sarà difficile aiutare senza il codice effettivo: l'HTML per la pagina e il CSS. C'è qualche ragione particolare per cui usi JQuery piuttosto che apportare modifiche direttamente ai CSS? – frumious

+0

Lo uso per il reattivo non so se questo aiuto, ma questo lavoro per me. Sto cercando [esempio] (http://jeremie.patonnier.net/pages/mentions-legales) questo piè di pagina, ma non capisco perché c'è sempre una sovrapposizione che sto aggiungendo un margine di fondo con come 110 % Funziona, ma se aggiungo un contenuto, ho bisogno di definire un altro margine inferiore. (Il margine inferiore funziona solo se disattivo lo script) – lll

19

Questo è un argomento precedente con nessuna risposta selezionata.

Sono su un modello Bootstrap fresco, porting suo tema corrente per il Bootstrap sezione per sezione :)

Ho un colpo di testa appiccicoso, e voglio che il piè di pagina bloccata per il fondo a TUTTI volte. L'ho fatto funzionare, ma quando ho ridimensionato per vederlo reattivo, il footer si è sovrapposto al contenuto. Avevo bisogno di un padding/spazio tra il "contenuto" e il "footer" in modo che non sembrasse un po 'folto.

margin-bottom sul tag body non ha funzionato, ha aggiunto un gap sotto il mio footer. Quando pensi a come si comporta un margine sul tag "body", ciò ha senso.

La risposta corretta è utilizzare "padding-bottom" sul tag body. Ho usato una dimensione di 6 pixel più grande dell'altezza del mio footer per assicurare questa piccola imbottitura/spaziatura.

body { 
    padding-bottom: 120px; 
} 

.footer { 
    position: absolute; 
    left: 0; 
    bottom: 0; 
    width: 100%; 
    height: 114px; 
} 

Le vostre altezze sarebbero ovviamente diverse. Spero che questo ti aiuti!

+0

Vale la pena notare che una barra di navigazione fissa nella parte superiore richiede un [padding-top] (http://getboototrap.com/components/#navbar-fixed-top) a il corpo e allo stesso modo un footer fisso richiede un fondo di imbottitura – raghav710

+0

E in che modo esattamente 'posizione: absolute' suppone di risolvere il problema di sovrapposizione? – busuu

+0

Questo fondo imbottito ha fatto la differenza! –

0

Marchio float: left ha risolto il mio problema .footer { float:left; }

+0

I galleggianti dovrebbero essere l'ultima risorsa. Devi pensare a come i vari browser interpretano ciò che stai facendo. Vuoi utilizzare qualcosa di specifico che il 99% dei browser non interpreterà diversamente. Margini, paddings, ecc. Dovrebbero andare bene sul 99% dei browser dopo un reset (come fa Bootstrap). Più browser gestiscono float in modo diverso, oppure possono gestire un contenitore genitore in modo diverso, il che danneggia i float. - Questo è vero in particolare quando si prende in considerazione il codice mobile friendly. –

Problemi correlati