Créer un réactif barre de navigation sidebar “tiroir” dans le Bootstrap 4?
D'essayer d'atteindre quelque chose comme ceci : https://www.muicss.com/examples/v1/example-layouts/responsive-side-menu/index.html
J'ai vu quelques exemples en ligne en utilisant d'autres versions de bootstrap, mais ils ont tous de modifier le css de trop, ce qui rend plus difficile l'apprentissage de bootstrap.
Je me demandais si dans le Bootstrap 4 cela peut être fait en utilisant des outils comme l'effondrement, empilées les pilules, flexbox?
C'est ce que j'ai pu réaliser : https://jsfiddle.net/kL9u6esw/20/
Ce qui est absent de mon Jsfiddle :
- Pas correctement sensible
- La barre de navigation n'est pas défilement correctement avec le collant classe
- Le bouton de menu n'est pas collante, même si j'ai mis la classe.
- Un fond gradateur de lumière, bien que n'étant pas nécessaire pour la réponse, serait une grande
Dans mon exemple, je ne pouvais pas comprendre comment insérer une barre de navigation, vous ne savez pas si il est nécessaire pour qu'il soit correctement adapté.
Également pas sûr si le fait d'avoir comme une des colonnes est la bonne façon de le faire, il ne devrait pas être hors de la toile?
Code Html :
<div class="container-fluid h-100">
<div class="row h-100">
<div class="col-5 col-md-3 collapse m-0 p-0 h-100 bg-dark" id="collapseExample">
<ul class="nav flex-column navbar-dark sticky-top">
<li class="nav-item">
<a class="nav-link active" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</div>
<div class="col">
<div class="row">
<div class="col-12">
<button class="btn sticky-top" data-toggle="collapse" href="#collapseExample" role="button">
Menu
</button>
</div>
<div class="col-12">
Lorem...
</div>
</div>
</div>
</div>
</div>
- Je vais ouvrir un bounty pour qu'il accepte plus de réponses complètes que se rapprocher de la lié exemple en question
- Quels sont les aspects exactement êtes-vous actuellement défaut dans les solutions proposées? De quoi avez-vous besoin d'une solution/réponse plus complète ou idéales pour vous?
- Je pense que ma réponse, a répondu à l'origine des questions. "qui peut être fait en utilisant des outils comme l'effondrement, empilées les pilules, flexbox?... Je ne pouvais pas comprendre comment insérer une barre de navigation". Maintenant que vous avez commencé un bounty, veuillez modifier la question pour expliquer ce que vous attendez.
- D'où vient le fond de gradateur à venir?
- mobile responsive version de l'exemple
Vous devez vous connecter pour publier un commentaire.
Barre latérale trajets peuvent être très complexes. C'est pourquoi Bootstrap n'est pas un "out-of - the-box" du composant. Il ya beaucoup de considérations pour les Encadrés:
Dans cette "barre latérale" cas... au lieu d'utiliser
col-auto
sur la colonne de droite, utilisezcol
. De cette façon, il remplira la largeur lorsque le menu est effondré: https://jsfiddle.net/0rhyzu7o/Pour faire de l'animation un peu plus lisse, vous devez remplacer les fichiers d'amorce de l'effondrement de transition qui fonctionne normalement sur une hauteurEDIT:
Basé sur la générosité demande, j'ai mis à jour la barre latérale avec 2 autres exemples. Ces sont plus proches de la exemple, et surtout utiliser Bootstrap classes.
Version minimale
Cette version est plus proche de l'exemple, et a la même glissez vers la gauche/droite "tiroir" de l'animation.
Démo version minimale: https://www.codeply.com/go/w1AMD1EY3c
Version complète (très à proximité de la exemple):
Cette barre latérale caractéristiques:
Cette version ne nécessitent un peu plus de CSS, mais certains de il est facultatif...
HTML:
Démo de la version complète: https://www.codeply.com/go/XJE8LOdX8k
À la fois la minimes et robuste exemples sont beaucoup plus proches de la exemple d'origine. Il est facile de changer de couleur et de modifier les styles. Voici une autre variation avec le barre latérale la superposition de la barre de basculement en haut.
Voir aussi: Bootstrap barre de navigation de l'Effondrement de la Superposition de la barre latérale
Alors, voici une solution possible aux points 1 à 3.
La clé de résolution #1 a été fourni par @zimsystem:
"Au lieu d'utiliser col-auto sur la colonne de droite, utilisez le col. De cette façon, il remplira la largeur lorsque le menu est effondré."
À résoudre #2, vous avez besoin de se débarrasser de h-100 dans la première rangée et de colonne:
(ce n'est pas le bon code, j'ai marqué les classes dont vous avez besoin pour supprimer par des astérisques)
Une fois que vous faites cela, le menu de la colonne extensible à toute la longueur de la colonne de contenu.
À résoudre #3, il vous suffit de déplacer le bouton d'une sous rubrique, dans la colonne principale. C'était de rester en place au sein de la mini-colonne vous a assigné à la.
En outre, j'ai ajouté un peu de CSS pour le menu dans le cas où vous finissez par avoir plus de liens que dans l'exemple, afin de faire défiler correctement si la liste est trop longue pour votre écran.
Le code complet de cette réponse se trouve ici:
CSS:
HTML:
Laissez-moi savoir comment ça se passe!