2012-09-24 16 views
12

Utilizzando la 2.1.1 Twitter Bootstrap, sto cercando di creare una barra di navigazione che viene fissato alla parte superiore della pagina, ma che è non larghezza:Navbar fisso verso l'alto, ma non tutta larghezza

<div class="container"> 
    <div class="navbar navbar-fixed-top"> 
    <div class="navbar-inner"> 
     <div class="container"> 
     <a class="brand" href="#">Project name</a> 
     <div class="nav-collapse collapse"> 
      <ul class="nav"> 
      <li class="active"><a href="#">Home</a></li> 
      <li><a href="#about">About</a></li> 
      <li><a href="#contact">Contact</a></li> 
      </ul> 
     </div><!--/.nav-collapse --> 
     </div> 
    </div> 
    </div> 
</div> 

Se rimuovo la classe barra di navigazione-fisso-top:

<div class="navbar navbar-fixed-top"> 

a

<div class="navbar"> 

quindi la barra di navigazione finisce per apparire come mi piacerebbe - solo 940px largamente invece che a larghezza intera - ma ovviamente non è più fissa in cima alla pagina. Come posso mantenere questa barra di navigazione fissa in cima alla pagina senza che diventi a tutta larghezza?

+0

provare a seguire [tale struttura] [1], e ruotare la classe contenitore-liquido nel contenitore ... [1]: http://stackoverflow.com/questions/21559710/bootstarp-navbar-width-same-as-container/24288270 # 24288270 –

risposta

5

È possibile ignorare il posizionamento di Bootstrap impostandolo a fisso - utilizzare absolute se non si desidera che per scorrere con la pagina:

.navbar { 
    position: fixed !important; 
    top: 0px; 
    width: 940px; 
} 

(prendere in considerazione dandogli un ID se si pensa di utilizzare più navbars)

+1

Ho dovuto aggiungere "width: 940px;", altrimenti la barra di spostamento si restringe per essere abbastanza grande da contenere il suo contenuto. A parte questo, però, sembra funzionare. Grazie! –

+0

Ottimo! Aggiornato la mia risposta di conseguenza. – Sara

0

Bootstrap 3+ dovrebbe essere in grado di gestire le larghezze dinamici per voi se si avvolgono il tuo barra di navigazione in un div con un class di container poi larghezze sarà dinamica a seconda dello spazio disponibile.

Dai uno sguardo allo Bootstrap css in particolare la sezione container per ulteriori dettagli.

+2

Funziona solo quando la barra di navigazione NON è 'navbar-fixed-top'.L'applicazione di 'navbar-fixed-top' a una barra di navigazione esistente (all'interno di un contenitore) imposterà la barra di navigazione nella parte superiore dello schermo e cambierà la larghezza al 100% del corpo. –

5

È possibile creare una barra di navigazione fissa o una barra di navigazione fissata in basso senza che diventi a larghezza intera e sensibile a qualsiasi dimensione dello schermo.

Fase 1: aggiungere quelli css: (I creare una classe CSS chiamato: .navbar-fixed-width)

@media all and (min-width: 768px) { 
    .navbar-fixed-width { 
    width: 768px; 
    margin-left: auto; 
    margin-right:auto; 
} 
} 

@media all and (min-width: 992px) { 
    .navbar-fixed-width { 
    width: 992px; 
    margin-left: auto; 
    margin-right:auto; 
    } 

} 

@media all and (min-width: 1200px) { 
    .navbar-fixed-width { 
    width: 1200px; 
    margin-left: auto; 
    margin-right:auto; 
    } 
} 

fase 2: .navbar-fixed-width classe per la navigazione in questo modo.

<div class="navbar navbar-inverse navbar-fixed-top navbar-fixed-width" role="navigation"> 
    <div class="container"> 
     <div class="navbar-header"> 
     </div> 
    </div> 
</div> 
0

Meno per la soluzione Tommy Nguyen.

.navbar-fixed-width { 
    margin-left: auto; 
    margin-right: auto; 

    @media all and (min-width: @screen-sm-min) { 
    width: @screen-sm-min; 
    } 

    @media all and (min-width: @screen-md-min) { 
    width: @screen-md-min; 
    } 

    @media all and (min-width: @screen-lg-min) { 
    width: @screen-lg-min; 
    } 
} 
Problemi correlati