Navs
Documentation et exemples d'utilisation des composants de navigation inclus dans Bootstrap.
Navigation de base
La navigation disponible dans Bootstrap partage le balisage et les styles généraux, de la .nav
classe de base aux états actif et désactivé. Échangez les classes de modificateurs pour basculer entre chaque style.
Le .nav
composant de base est construit avec flexbox et fournit une base solide pour la construction de tous les types de composants de navigation. Il inclut des remplacements de style (pour travailler avec des listes), un rembourrage de liens pour des zones d'accès plus larges et un style de base désactivé.
Le .nav
composant de base n'inclut aucun .active
état. Les exemples suivants incluent la classe, principalement pour démontrer que cette classe particulière ne déclenche aucun style particulier.
Les classes sont utilisées partout, de sorte que votre balisage peut être très flexible. Utilisez <ul>
des s comme ci-dessus, <ol>
si l'ordre de vos articles est important, ou roulez les vôtres avec un <nav>
élément. Parce que les .nav
utilisations display: flex
, les liens de navigation se comportent de la même manière que les éléments de navigation, mais sans le balisage supplémentaire.
Modèles disponibles
Modifiez le style du .nav
composant s avec des modificateurs et des utilitaires. Mélangez et assortissez au besoin, ou construisez le vôtre.
Alignement horizontal
Modifiez l'alignement horizontal de votre navigation avec les utilitaires flexbox . Par défaut, les navs sont alignés à gauche, mais vous pouvez facilement les changer pour qu'ils soient alignés au centre ou à droite.
Centré avec .justify-content-center
:
Aligné à droite avec.justify-content-end
:
Vertical
Empilez votre navigation en changeant la direction de l'élément flexible avec l' .flex-column
utilitaire. Besoin de les empiler sur certaines fenêtres mais pas sur d'autres ? Utilisez les versions réactives (par exemple, .flex-sm-column
).
Comme toujours, la navigation verticale est <ul>
également possible sans s.
Onglets
Prend la navigation de base d'en haut et ajoute la .nav-tabs
classe pour générer une interface à onglets. Utilisez-les pour créer des régions tabulables avec notre plugin JavaScript tab .
Pilules
Prenez ce même code HTML, mais utilisez à la .nav-pills
place :
Remplir et justifier
Forcez le .nav
contenu de votre à étendre toute la largeur disponible à l'une des deux classes de modificateurs. Pour remplir proportionnellement tout l'espace disponible avec vos .nav-item
s, utilisez .nav-fill
. Notez que tout l'espace horizontal est occupé, mais que tous les éléments de navigation n'ont pas la même largeur.
Lorsque vous utilisez une <nav>
navigation basée sur -, assurez-vous d'inclure .nav-item
sur les ancres.
Pour les éléments de largeur égale, utilisez .nav-justified
. Tout l'espace horizontal sera occupé par des liens de navigation, mais contrairement à ce .nav-fill
qui précède, chaque élément de navigation aura la même largeur.
Semblable à l' .nav-fill
exemple utilisant une <nav>
navigation basée sur -, assurez-vous d'inclure .nav-item
sur les ancres.
Utilisation des utilitaires flexibles
Si vous avez besoin de variantes de navigation réactives, envisagez d'utiliser une série d' utilitaires flexbox . Bien que plus détaillés, ces utilitaires offrent une plus grande personnalisation à travers les points d'arrêt réactifs. Dans l'exemple ci-dessous, notre navigation sera empilée sur le point d'arrêt le plus bas, puis s'adaptera à une disposition horizontale qui remplit la largeur disponible à partir du petit point d'arrêt.
Concernant l'accessibilité
Si vous utilisez navs pour fournir une barre de navigation, assurez-vous d'ajouter un role="navigation"
au conteneur parent le plus logique du <ul>
, ou enveloppez un <nav>
élément autour de l'ensemble de la navigation. N'ajoutez pas le rôle au lui- <ul>
même, car cela l'empêcherait d'être annoncé comme une liste réelle par les technologies d'assistance.
Notez que les barres de navigation, même si elles sont visuellement stylées comme des onglets avec la .nav-tabs
classe, ne doivent pas recevoir de role="tablist"
, role="tab"
ni d' role="tabpanel"
attributs. Celles-ci ne sont appropriées que pour les interfaces à onglets dynamiques, comme décrit dans WAI ARIA Authoring Practices . Voir Comportement JavaScript pour les interfaces à onglets dynamiques dans cette section pour un exemple.
Utilisation des listes déroulantes
Ajoutez des menus déroulants avec un peu de HTML supplémentaire et le plugin JavaScript pour les listes déroulantes .
Onglets avec listes déroulantes
Pilules avec listes déroulantes
Comportement JavaScript
Utilisez le plug-in JavaScript tab - incluez-le individuellement ou via le bootstrap.js
fichier compilé - pour étendre nos onglets et pilules de navigation afin de créer des volets tabulables de contenu local, même via des menus déroulants.
Si vous construisez notre JavaScript à partir de la source, cela nécessiteutil.js
.
Les interfaces dynamiques à onglets, telles que décrites dans les pratiques de création WAI ARIA , nécessitent role="tablist"
, role="tab"
, role="tabpanel"
et des aria-
attributs supplémentaires afin de transmettre leur structure, leur fonctionnalité et leur état actuel aux utilisateurs de technologies d'assistance (telles que les lecteurs d'écran).
Notez que les interfaces à onglets dynamiques ne doivent pas contenir de menus déroulants, car cela entraîne à la fois des problèmes de convivialité et d'accessibilité. Du point de vue de la convivialité, le fait que l'élément déclencheur de l'onglet actuellement affiché ne soit pas immédiatement visible (car il se trouve dans le menu déroulant fermé) peut prêter à confusion. Du point de vue de l'accessibilité, il n'existe actuellement aucun moyen sensé de mapper ce type de construction à un modèle WAI ARIA standard, ce qui signifie qu'il ne peut pas être facilement rendu compréhensible pour les utilisateurs de technologies d'assistance.
Denim brut, vous n'avez probablement pas entendu parler d'eux shorts en jean Austin. Nesciunt tofu sumptown aliqua, nettoyage de maître de synthé rétro. Moustache cliché tempor, williamsburg carles vegan helvetica. Reprehenderit boucher rétro keffieh dreamcatcher synthé. Cosby pull eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, boucher voluptate nisi qui.
Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.
Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.
Pour vous aider à répondre à vos besoins, cela fonctionne avec <ul>
le balisage basé sur -, comme indiqué ci-dessus, ou avec n'importe quel balisage arbitraire "roll your own". Notez que si vous utilisez <nav>
, vous ne devez pas y ajouter role="tablist"
directement, car cela remplacerait le rôle natif de l'élément en tant que point de repère de navigation. Au lieu de cela, passez à un élément alternatif (dans l'exemple ci-dessous, un simple <div>
) et enroulez-le <nav>
autour.
Le plugin tabs fonctionne également avec les pilules.
Consequat occaecat ullamco amet non eiusmod nostrud dolore irure incididunt est duis anim sunt officia. Fugiat velit proident aliquip nisi inciddunt nostrud exercitation proident est nisi. Irure magna elit commodo anim ex veniam culpa eiusmod id nostrud sit cupidatat in veniam ad. Eiusmod consequat eu adipisicing minim anim aliquip cupidatat culpa excepteur quis. Occaecat sit eu exercitation irure Lorem incididunt nostrud.
Ad pariatur nostrud pariatur exercitation ipsum ipsum culpa mollit commodo mollit ex. Aute sunt incididunt amet commodo est sint nisi deserunt pariatur do. Aliquip ex eiusmod voluptate exercitation cillum id incididunt elit sunt. Qui minim sit magna Lorem id et dolore velit Lorem amet exercitation duis deserunt. Anim id labore elit adipisicing ut in id occaecat pariatur ut ullamco ea tempor duis.
Est quis nulla laborum officia ad nisi ex nostrud culpa Lorem excepteur aliquip dolor aliqua irure ex. Nulla ut duis ipsum nisi elit fugiat commodo sunt reprehenderit laborum veniam eu veniam. Eiusmod minim exercitation fugiat irure ex labore incididunt do fugiat commodo aliquip sit id deserunt reprehenderit aliquip nostrud. Amet ex cupidatat excepteur aute veniam incididunt mollit cupidatat esse irure officia elit do ipsum ullamco Lorem. Ullamco ut ad minim do mollit labore ipsum laboris ipsum commodo sunt tempor enim incididunt. Commodo quis sunt dolore aliquip aute tempor irure magna enim minim reprehenderit. Ullamco consectetur culpa veniam sint cillum aliqua incididunt velit ullamco sunt ullamco quis quis commodo voluptate. Mollit nulla nostrud adipisicing aliqua cupidatat aliqua pariatur mollit voluptate voluptate consequat non.
Et avec des pilules verticales.
Cillum ad ut irure tempor velit nostrud occaecat ullamco aliqua anim Lorem sint. Veniam sint duis inciddunt do esse magna mollit excepteur laborum qui. Id id reprehenderit sit est eu aliqua occaecat quis et velit excepteur laborum mollit dolore eiusmod. Ipsum dolor in occaecat commodo et voluptate minim reprehenderit mollit pariatur. Deserunt non laborum enim et cillum eu deserunt excepteur ea incididunt minim occaecat.
Culpa dolor voluptate do laboris laboris irure reprehenderit id incididunt duis pariatur mollit aute magna pariatur consectetur. Eu veniam duis non ut dolor deserunt commodo et minim in quis laboris ipsum velit id veniam. Quis ut consectetur adipisicing officia excepteur non sit. Ut et elit aliquip labore Lorem enim eu. Ullamco mollit occaecat dolore ipsum id officia mollit qui esse anim eiusmod do sint minim consectetur qui.
Fugiat id quis dolor culpa eiusmod anim velit excepteur proident dolor aute qui magna. Ad proident laboris ullamco esse anim Lorem Lorem veniam quis Lorem irure occaecat velit nostrud magna nulla. Velit et et proident Lorem do ea tempor officia dolor. Reprehenderit Lorem aliquip labore est magna commodo est ea veniam consectetur.
Eu dolore ea ullamco dolore Lorem id cupidatat excepteur reprehenderit consectetur elit id dolor proident in cupidatat officia. Voluptate excepteur commodo labore nisi cillum duis aliqua do. Aliqua amet qui mollit consectetur nulla mollit velit aliqua veniam nisi id do Lorem deserunt amet. Culpa ullamco sit adipisicing labore officia magna elit nisi in aute tempor commodo eiusmod.
Utilisation des attributs de données
Vous pouvez activer une navigation par onglets ou pilules sans écrire de JavaScript en spécifiant simplement data-toggle="tab"
ou data-toggle="pill"
sur un élément. Utilisez ces attributs de données sur .nav-tabs
ou .nav-pills
.
Via Javascript
Activer les onglets tabulables via JavaScript (chaque onglet doit être activé individuellement) :
Vous pouvez activer des onglets individuels de plusieurs manières :
Effet fondu
Pour faire apparaître les onglets en fondu, ajoutez .fade
à chacun .tab-pane
. Le premier volet d'onglet doit également .show
rendre visible le contenu initial.
Méthodes
Méthodes et transitions asynchrones
Toutes les méthodes API sont asynchrones et démarrent une transition . Ils reviennent à l'appelant dès que la transition est commencée mais avant qu'elle ne se termine . De plus, un appel de méthode sur un composant en transition sera ignoré .
Consultez notre documentation JavaScript pour plus d'informations .
$().tab
Active un élément d'onglet et un conteneur de contenu. L'onglet doit avoir un data-target
ou un href
ciblant un nœud de conteneur dans le DOM.
.tab('montrer')
Sélectionne l'onglet donné et affiche son volet associé. Tout autre onglet précédemment sélectionné devient désélectionné et son volet associé est masqué. Revient à l'appelant avant que le volet d'onglet ne soit réellement affiché (c'est-à-dire avant que l' shown.bs.tab
événement ne se produise).
.tab('disposer')
Détruit l'onglet d'un élément.
Événements
Lors de l'affichage d'un nouvel onglet, les événements se déclenchent dans l'ordre suivant :
hide.bs.tab
(sur l'onglet actuellement actif)show.bs.tab
(sur l'onglet à afficher)hidden.bs.tab
(sur l'onglet actif précédent, le même que pour l'hide.bs.tab
événement)shown.bs.tab
(sur l'onglet nouvellement actif qui vient d'être affiché, le même que pour l'show.bs.tab
événement)
Si aucun onglet n'était déjà actif, les événements hide.bs.tab
et hidden.bs.tab
ne seront pas déclenchés.
Type d'événement | La description |
---|---|
show.bs.tab | Cet événement se déclenche lors de l'affichage de l'onglet, mais avant l'affichage du nouvel onglet. Utilisez event.target et event.relatedTarget pour cibler respectivement l'onglet actif et l'onglet actif précédent (si disponible). |
montré.bs.tab | Cet événement se déclenche lors de l'affichage d'un onglet après l'affichage d'un onglet. Utilisez event.target et event.relatedTarget pour cibler respectivement l'onglet actif et l'onglet actif précédent (si disponible). |
hide.bs.tab | Cet événement se déclenche lorsqu'un nouvel onglet doit être affiché (et donc l'onglet actif précédent doit être masqué). Utilisez event.target et event.relatedTarget pour cibler respectivement l'onglet actif actuel et le nouvel onglet qui sera bientôt actif. |
onglet.bs.caché | Cet événement se déclenche après l'affichage d'un nouvel onglet (et donc l'onglet actif précédent est masqué). Utilisez event.target et event.relatedTarget pour cibler respectivement l'onglet actif précédent et le nouvel onglet actif. |