Est-il possible de faire en sorte que la navigation dans la barre latérale reste toujours fixe sur le défilement dans une mise en page fluide?
Est-il possible de faire en sorte que la navigation dans la barre latérale reste toujours fixe sur le défilement dans une mise en page fluide?
Remarque: il existe un plugin bootstrap jQuery qui fait cela et bien plus encore qui a été introduit quelques versions après que cette réponse ait été écrite (il y a presque deux ans) appelé Affix . Cette réponse ne s'applique que si vous utilisez Bootstrap 2.0.4 ou une version antérieure.
Oui, créez simplement une nouvelle classe fixe pour votre barre latérale et ajoutez une classe de décalage à votre div de contenu pour compenser la marge gauche, comme ceci:
CSS
.sidebar-nav-fixed {
padding: 9px 0;
position:fixed;
left:20px;
top:60px;
width:250px;
}
.row-fluid > .span-fixed-sidebar {
margin-left: 290px;
}
Démo: http://jsfiddle.net/U8HGz/1/show/ Modifiez ici: http://jsfiddle.net/U8HGz/1/
Mettre à jour
Correction de ma démo pour prendre en charge la feuille d'amorçage réactive, maintenant elle coule avec la fonction réactive du bootstrap.
Remarque: Cette démo suit la barre de navigation fixe supérieure, de sorte que les deux éléments deviennent position:static
lors du redimensionnement de l'écran, j'ai placé une autre démo ci-dessous qui maintient la barre latérale fixe jusqu'à ce que l'écran tombe pour la vue mobile.
CSS
.sidebar-nav-fixed {
position:fixed;
top:60px;
width:21.97%;
}
@media (max-width: 767px) {
.sidebar-nav-fixed {
width:auto;
}
}
@media (max-width: 979px) {
.sidebar-nav-fixed {
position:static;
width: auto;
}
}
HTML
<div class="container-fluid">
<div class="row-fluid">
<div class="span3">
<div class="well sidebar-nav sidebar-nav-fixed">
...
</div><!--/.well -->
</div><!--/span-->
<div class="span9">
...
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
note mineure: il y a une différence d'environ 10px / 1% sur la largeur de la barre latérale fixe, cela est dû au fait que comme il n'hérite pas de la largeur du div conteneur span3 car il est fixe, j'ai dû trouver un largeur. C'est assez proche.
Et voici une autre méthode si vous souhaitez garder la barre latérale fixe jusqu'à ce que la grille tombe pour un petit écran / vue mobile.
CSS
.sidebar-nav-fixed {
position:fixed;
top:60px;
width:21.97%;
}
@media (max-width: 767px) {
.sidebar-nav-fixed {
position:static;
width:auto;
}
}
@media (max-width: 979px) {
.sidebar-nav-fixed {
top:70px;
}
}
margin-left:290px
déclaration sur la.span-fixed-sidebar
classe faite pour faire place à la barre latérale, si elle n'était pas là, le contenu chevaucherait la barre latérale sur des écrans plus petits. Vous pouvez éliminer la barre de défilement horizontale mais en se cachant explicitement sur l'body
étiquette, comme suit:body { overflow-x: hidden; }
.Le dernier Boostrap (2.1.0) a une nouvelle fonction "affixe" JS spécifiquement pour ce type d'application, FYI.
la source
cela va bousiller le Webdesign réactif. Mieux vaut envelopper la barre latérale fixe dans une requête multimédia.
CSS
HTML
Désormais, la barre latérale n'est fixe que si le champ de vision est plus grand que 768px.
la source
Ce n'est pas possible sans javascript. Je trouve affix.js trop complexe, donc j'utilise plutôt:
collant
la source
J'ai commencé avec les réponses d'Andres et j'ai fini par obtenir une barre latérale collante comme celle-ci:
HTML:
CSS:
JS / jQuery:
Je suppose que j'ai également besoin de JS pour mettre à jour la variable 'sidebarwidth' lorsque la fenêtre est redimensionnée.
la source
Très facile d'obtenir la navigation fixe ou tout ce que vous voulez. Tout ce dont vous avez besoin est d'écrire votre balise de correction comme celle-ci et de la mettre dans votre section corps
la source
Avec la version actuelle de Bootstrap (3.3.2), il existe un bon moyen d'obtenir une barre latérale fixe pour la navigation.
Cette solution fonctionne également bien avec la classe de fluide conteneur réintroduite, ce qui signifie qu'il est facilement possible d'avoir une mise en page plein écran réactive.
Normalement, vous devrez utiliser des largeurs et des marges fixes ou la navigation chevaucherait le contenu, mais avec l'aide de la colonne d'espace réservé vide, le contenu est toujours positionné au bon endroit.
La configuration ci-dessous enveloppe le contenu lorsque vous redimensionnez la fenêtre à moins de 768 pixels et libère la navigation fixe.
Voir http://www.bootply.com/ePvnTy1VII pour un exemple fonctionnel.
CSS
HTML
la source