170 votes

Bootstrap 4 : changer la couleur du Toggler Hamburger

J'ai un site web bootstrap où le toggler hamburger est ajouté lorsque la taille de l'écran est inférieure à 992px. Le code est le suivant :

<button class="navbar-toggler navbar-toggler-right" 
        type="button" data-toggle="collapse" 
        data-target="#navbarSupportedContent" 
        aria-controls="navbarSupportedContent" 
        aria-expanded="false" 
        aria-label="Toggle navigation"> 
    <span class="navbar-toggler-icon"></span> 
</button>

Est-il possible de modifier la couleur du bouton de basculement du hamburger ?

2 votes

Le code ne fonctionne pas tel quel dans bootply

1 votes

Ce n'est pas vraiment une réponse, mais vous pouvez jouer avec le navbar-toggler-icon à l'adresse suivante advertentiekracht.nl/togglerIcon.html Là, le toggler-icon de bootstrap est utilisé comme un élément de style externe au lieu de faire référence à la feuille de style de bootstrap. Il est également expliqué comment gérer cela.

318voto

Skelly Points 27772

Le site navbar-toggler-icon (hamburger) dans Bootstrap 4 utilise un SVG background-image . Il existe 2 "versions" de l'image de l'icône de basculement. Une pour une barre de navigation claire, et une pour une barre de navigation foncée...

  • Utilisez navbar-dark pour un interrupteur à bascule blanc/clair sur des fonds plus sombres
  • Utilisez navbar-light pour un basculeur sombre/gris sur des fonds plus clairs

// this is a black icon with 50% opacity
.navbar-light .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;..");
}
// this is a white icon with 50% opacity
.navbar-dark .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;..");
}

Par conséquent, si vous voulez changer la couleur de l'image du basculeur en quelque chose d'autre, vous pouvez personnaliser l'icône. Par exemple, ici, j'ai défini la valeur RVB sur rose (255,102,203). Remarquez que l'icône stroke='rgba(255,102,203, 0.5)' dans les données SVG :

.custom-toggler .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,102,203, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
}

.custom-toggler.navbar-toggler {
  border-color: rgb(255,102,203);
} 

Démo http://www.codeply.com/go/4FdZGlPMNV

OFC, une autre option consiste à utiliser une icône d'une autre bibliothèque, par exemple Font Awesome, etc.


Mise à jour de Bootstrap 4.0.0 :

A partir de Bootstrap 4 Beta, navbar-inverse est maintenant navbar-dark à utiliser sur les barres de navigation dont les couleurs de fond sont plus sombres pour produire des couleurs de lien et de bascule plus claires.


Comment changer les couleurs de la barre de navigation de Bootstrap 4

3 votes

Dans Bootstrap 4 beta 1 il n'y a pas de .navbar-inverse vous pouvez choisir parmi deux classes : .navbar-light ou .navbar-dark .

2 votes

J'ai copié l'url du SVG depuis Chrome pour l'éditer et le chemin de la course était le suivant stroke='rgba%280, 0, 0, 0.5%29' que j'ai lu comme rgba(280, 0, 0, 0.5) (oui je suis un idiot ; 280 > 255) et quand j'ai supprimé et remplacé le 280 cela n'a pas fonctionné et il m'a fallu quelques minutes pour réaliser que le %28 était une chose, c'est-à-dire une parenthèse ouvrante codée en url.

74voto

Utilisez un icône "font-awesome comme icône par défaut de votre barre de navigation.

<span class="navbar-toggler-icon">   
    <i class="fas fa-bars" style="color:#fff; font-size:28px;"></i>
</span>

Ou essayez ceci sur les anciennes versions de font-awesome :

<span class="navbar-toggler-icon">   
    <i class="fa fa-navicon" style="color:#fff; font-size:28px;"></i>
</span>

4 votes

Pour fontawesome 5, utilisez des barres. fontawesome.com/icons/bars?style=solid

0 votes

Ai-je vraiment besoin de la class="navbar-toggler-icon" ?

11voto

Ghafor Sabury Points 11

Vous pouvez créer le bouton de basculement avec css seulement d'une manière très facile, il n'y a aucun besoin d'utiliser des polices dans SVG ou ... foramt.

Votre bouton :

<button 
     class="navbar-toggler collapsed" 
    data-target="#navbarsExampleDefault" 
    data-toggle="collapse">
        <span class="line"></span> 
        <span class="line"></span> 
        <span class="line"></span>
</button>

Votre style de bouton :

.navbar-toggler{
width: 47px;
height: 34px;
background-color: #7eb444;

}

Votre ligne horizontale Style :

.navbar-toggler .line{
width: 100%;
float: left;
height: 2px;
background-color: #fff;
margin-bottom: 5px;

}

Démo

.navbar-toggler{
    width: 47px;
    height: 34px;
    background-color: #7eb444;
    border:none;
}
.navbar-toggler .line{
    width: 100%;
    float: left;
    height: 2px;
    background-color: #fff;
    margin-bottom: 5px;
}

<button class="navbar-toggler" data-target="#navbarsExampleDefault" data-toggle="collapse" aria-expanded="true" >
        <span class="line"></span> 
        <span class="line"></span> 
        <span class="line" style="margin-bottom: 0;"></span>
</button>

2voto

stockersky Points 206

EDIT : c'est ma faute ! Avec ma réponse, l'icône ne se comporte pas comme une bascule. En fait, elle s'affiche même si elle n'est pas fermée... Je cherche encore...

Cela fonctionnerait :

<button class="btn btn-primary" type="button" data-toggle="collapse" 
    data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
    aria-expanded="false" aria-label="Toggle navigation">
    <span>
        <i class="fas fa-bars"></i>
    </span>
</button>

L'astuce proposée par ma réponse consiste à remplacer l'élément navbar-toggler avec une classe de boutons classiques btn et ensuite, comme répondu précédemment, utiliser une police d'icônes.

Notez, que si vous gardez <button class="navbar-toggler"> le bouton aura une forme "étrange".

Comme indiqué dans ce publier sur github Dans le cadre de l'initiative de la Commission européenne, bootstrap utilise des "astuces css" pour que les utilisateurs n'aient pas à se fier aux polices de caractères.

Donc, n'utilisez pas le "navbar-toggler" sur votre bouton si vous souhaitez utiliser une police d'icône.

A la vôtre.

0 votes

Cela ne "fonctionne" que si vous utilisez Font Awesome, qui ne fait pas partie de Bootstrap.

1 votes

Je suppose que vous devez retirer le commentaire sur la réponse donnée par Amirreza Mohammadi en haut de la liste. Merci.

0 votes

En fait, si vous retirez navbar-toggler classe du bouton sur Bootstrap 4.6 (je ne connais pas les autres versions mineures de la version 4 car je n'ai pas essayé) alors il sera visible sur la vue de bureau car il est également requis pour la vue mobile.

1voto

nedeco Points 41

Si vous travaillez avec la version sass de bootstrap en __variables.scss vous pouvez trouver $navbar-inverse-toggler-bg ou $navbar-light-toggler-bg_ où vous pouvez modifier la couleur et le style de votre bouton à bascule.

En html, vous devez utiliser navbar-inverse ou navbar-light en fonction de la version que vous souhaitez utiliser.

0 votes

Ne fonctionne pas dans bootstrap 4 en ce qui concerne la navbar-light

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X