Comment masquer la flèche déroulante dans IE8 & IE9?
J'ai utilisé le CSS ci-dessous pour masquer la flèche du menu déroulant dans FF, safari, chrome et ajouté ma propre image, à personnaliser.
select
{
-webkit-appearance:none;
-moz-appearance:none;
-o-appearance:none;
appearance:none;
}
Pour IE10, j'ai utilisé le pseudo-élément
select::-ms-expand{
display:none;
}
Je ne sais pas comment appliquer la même chose pour IE9 & IE8. Quelqu'un peut me dire comment faire pour masquer la flèche du menu déroulant dans IE8 & IE9.
- Vous aurez certainement difficulté majeure avec ce dans IE8. En raison de la façon IE8 et plus tôt rend sélectionnez les cases, il est pratiquement impossible de faire du personnalisé style à tous, sauf si vous allez tout le chemin à écrire votre propre ensemble de sélectionner la zone de widget en javascript. IE9 peut être difficile, mais il devrait être possible, à la différence avec IE8.
- pas de problème, pouvez-vous me répondre comment faire dans ie9.
- c'est encore ne va pas être facile, mais au pire des cas dans IE9, vous pouvez simplement coller un élément au sommet de la flèche de la cacher. Vous pouvez utiliser un
::before
sélecteur pour ce faire peut-être. dans IE8 et plus haut, et qui n'est pas possible parce que des listes de sélection seront toujours rendus sur le dessus d'un autre contenu. - quelques idées pour IE9 est Sélectionnez la suppression flèche de menu déroulant
- BTW, votre code ne permet pas de supprimer toutes les flèches dans mon Firefox/24 pour Windows 7 {violon}... Ressemble à un problème connu.
- Pas de test en FF/Windows 7, mais travaillant dans fedora/24 FF
- voir ma réponse pour le plus proche que vous obtiendrez à une IE9 solution.
- Double Possible de Supprimer la flèche Sélectionner sur IE
InformationsquelleAutor Royal | 2013-10-16
Vous devez vous connecter pour publier un commentaire.
Vous ai demandé de trouver une solution pour IE8 et IE9.
Commençons avec IE8. Réponse courte: Il n'est pas possible. En raison de la façon IE8 et plus tôt rendu des listes de sélection, vous ne peut tout simplement pas cacher la flèche de la liste déroulante. Boîte de sélectionner les contrôles sont impossibles à coiffer dans le vieux IE, et toujours placée au-dessus de tout autre contenu.
Il n'est tout simplement pas une solution à cela, d'autres de réécrire l'ensemble de sélectionner la zone de contrôle en Javascript.
Maintenant IE9. Vous peut masquer la chute de la flèche. Ce n'est pas une chose standard, mais vous pouvez pirater.
Vous avez besoin pour commencer avec un wrapper élément (par exemple un
<div>
) autour de votre boîte de sélection. Vous pouvez ensuite le style de ce avec un:before
sélecteur de rajouter un peu de contenu sur le dessus de la chute de la flèche, de manière efficace de le cacher.Voici le CSS:
...et voir ici pour le jsFiddle de le voir en action.
Remarque, j'ai utilisé
red
comme la superposition de couleur pour le rendre évident ce qui se passe. Clairement, en utilisation normale, vous voulez utiliser du blanc de sorte qu'il ne se distingue pas.Vous noterez aussi que comme je l'ai dit ci-dessus, cela ne fonctionne pas avec IE8.
Évidemment, ce n'est pas la même que la "bonne" solution pour IE10 et les autres navigateurs, ce qui en fait supprimer la flèche; tout ce que nous faisons ici est de le cacher. Et cela signifie que nous nous retrouvons avec un ennuyeux tache blanche à la fin de la zone de sélection où la flèche est utilisé pour être.
Nous pouvons faire plus de style pour résoudre ce problème: par exemple, si nous faisons l'élément conteneur une largeur fixe et avec
overflow:hidden
, nous pouvons nous débarrasser de la tache blanche, mais ensuite, nous avons des problèmes avec les frontières de notre zone de sélection étant rompu, de sorte que nous avons à faire plus de style de bugs; il peut tout obtenir un peu désordonné. Plus bien sûr, cette option ne fonctionne que si la zone de sélection lui-même est connu de largeur fixe.Donc là vous l'avez: Il y a des options pour le faire dans IE9. Ils ne sont pas assez bien, et franchement, il peut ne pas être en vaut la peine. Mais si vous êtes désespéré, vous pouvez le faire.
Oh, et n'oubliez pas de faire ce code CSS spécifique de sorte qu'il ne fonctionne que sur IE9, sinon il va provoquer des problèmes sur d'autres navigateurs.
Vous ne pouvez pas supprimer la flèche en pur CSS pour IE9 < C'est pourquoi ils ont fait
::-ms-expand
pour IE10.Vous pouvez, cependant, faire quelque chose de ce genre. jsFiddle ici
Dans cet exemple, vous définissez un fixe
width
surselect
, et envelopper unediv
avec une baisse de lawidth
etoverflow:hidden
afin de masquer/cacher le menu déroulant. Il a le plein soutien. C'est essentiellement ne cacher la flèche dans tous les navigateurs.CSS
La seule façon d'accomplir ceci dans les anciennes versions d'IE est d'envelopper le
<select>
dans un petit peu de conteneurs et de définiroverflow: hidden;
Ce serait cacher la flèche sur le côté droit, mais encore vous permettent d'ouvrir la liste déroulante en cliquant sur elle. C'est salissant, mais c'est la seule façon d'accomplir ce que vous voulez.Dans le passé, ces éléments n'ont pas été styleable parce qu'ils étaient considérés comme une partie du système d'exploitation. Il semble que ce n'est plus un problème maintenant que la pseudo-éléments comme vous l'avez mentionné, sont disponibles.
pas sûr au sujet de chaque cas d'utilisation, mais dans mon cas, avec un fixe largeur x hauteur bg pic mis en place pour le parent, il a travaillé pour IE et FF trop:
HTML
CSS
jsfiddle
Un autre mauvais, mais fonctionnellement solucion pour IE9 😀
Aperçu
//CSS
Tous vous avez besoin est d'encapsuler le code avec cette IE9 media query pirater
jsFiddle