Créer votre propre liste déroulante est plus pénible que cela ne vaut la peine. Vous pouvez utiliser du JavaScript pour faire fonctionner la liste déroulante IE.
Il utilise un peu de la bibliothèque YUI et une extension spéciale pour réparer les boîtes de sélection IE.
Vous devrez inclure les éléments suivants et envelopper vos <select>
éléments dans un<span class="select-box">
Mettez-les avant la balise body de votre page:
<script src="http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/yahoo_2.0.0-b3.js" type="text/javascript">
</script>
<script src="http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/event_2.0.0-b3.js" type="text/javascript">
</script>
<script src="http://us.js2.yimg.com/us.js.yimg.com/lib/common/utils/2/dom_2.0.2-b3.js" type="text/javascript">
</script>
<script src="ie-select-width-fix.js" type="text/javascript">
</script>
<script>
// for each select box you want to affect, apply this:
var s1 = new YAHOO.Hack.FixIESelectWidth( 's1' ); // s1 is the ID of the select box you want to affect
</script>
Modification de l'acceptation de la publication:
Vous pouvez également le faire sans la bibliothèque YUI et le contrôle Hack. Tout ce que vous avez vraiment à faire est de mettre un onmouseover = "this.style.width = 'auto'" onmouseout = "this.style.width = '100px'" (ou ce que vous voulez) sur l'élément select. Le contrôle YUI lui donne cette belle animation mais ce n'est pas nécessaire. Cette tâche peut également être accomplie avec jquery et d'autres bibliothèques (bien que je n'ai pas trouvé de documentation explicite pour cela)
- amendement à l'édition:
IE a un problème avec le onmouseout pour les contrôles de sélection (il ne considère pas que le survol de la souris sur les options est un survol de la souris sur la sélection). Cela rend l'utilisation d'une sortie de souris très délicate. La première solution est la meilleure que j'ai trouvée jusqu'à présent.