J'ai un problème avec le bouton de sélection déroulant dans le bootstrap de Twitter. Cela se passe dans les deux navigateurs que j'ai installés sur la machine (IE11, Chrome) et ce n'est pas limité à "mes sites".
Voici une capture d'écran du site Web bootstrap (OS: Windows 8.1 Broswer: Chrome) ( http://getbootstrap.com/css/#forms-controls ):
J'ai vérifié la fenêtre de la console et toutes les ressources se chargent correctement.
Quelqu'un pourrait-il m'aider à comprendre pourquoi cela se produit/à résoudre le problème?
TL; DR: vous ne pouvez pas utiliser CSS pour changer l'icône. Vous devrez utiliser une bibliothèque qui implémente un contrôle de type sélection utilisant HTML et JavaScript (au détriment des sélections compatibles avec les appareils mobiles sur iOS et Android).
L'icône affichée dans <select>
est déterminée par le navigateur ou le système d'exploitation de l'utilisateur. Vous ne pouvez pas le changer en utilisant CSS.
J'ai supprimé hauteur de ligne, couleur d'arrière-plan, bordure, rayon de bordure et ombre de boîte. Notez que la flèche a changé même si je n’ai modifié aucun style associé.
Notez que les icônes sont différentes, même si le code est le même.
Bien que select ne soit pas très stylable, de nombreuses bibliothèques fournissent une implémentation très personnalisable d’un contrôle de type select. J'aime utiliser Bootstrap-select .
Cette bibliothèque crée un <div class="caret"></div>
qui peut être stylé pour changer l'icône. Par exemple, après avoir inclus le code JavaScript Bootstrap-select, le code suivant:
<select class="selectpicker">
<option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
</select>
.caret{
color: red;
}
L'utilisation d'une bibliothèque personnalisée désactive la méthode de sélection conviviale pour les implémentations iOS et Android. Assurez-vous donc qu'une icône personnalisée est suffisamment importante pour vous avant de continuer.
Vous ne pouvez pas appeler l'élément <select>
lui-même pour le moment. Chaque navigateur applique son propre style à la plupart des éléments de formulaire.
Vous pouvez ainsi créer votre propre sélection personnalisée en masquant celle d'origine, créer un balisage, par exemple. div
avec ul
+ li
et le faire vivre avec javascript.
OU
Si cela ne vous dérange pas d'utiliser jQuery, essayez ces bibliothèques:
J'ai eu ce comportement avec IE sous Windows 8.1. Pour une raison quelconque, IE affiche la flèche différemment dès que vous commencez à styler l'élément select
(ce que font habituellement les thèmes bootstrap). Même quelque chose d'aussi simple que de définir la couleur d'arrière-plan déclenche ce comportement.
La seule solution que j'ai trouvée jusqu'à présent consiste à styliser la flèche au besoin. Vous pouvez utiliser le :: - ms-expand pseudo élément pour cela. La règle css suivante devrait restaurer l'aspect "par défaut":
select::-ms-expand {
background-color: #fff;
border: none;
}