Maison >interface Web >js tutoriel >Comment résoudre la différence de largeur de liste déroulante entre Internet Explorer et Firefox à l'aide de jQuery ?

Comment résoudre la différence de largeur de liste déroulante entre Internet Explorer et Firefox à l'aide de jQuery ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-20 15:03:29584parcourir

How to Solve Drop-Down List Width Difference Between Internet Explorer and Firefox Using jQuery?

Écart de largeur de la liste déroulante IE

Dans Internet Explorer, les listes déroulantes héritent de la largeur de la liste déroulante, tandis que dans Firefox, elles s'ajustent à la liste contenu. Cela peut être problématique, car les boîtes de dépôt doivent être inutilement surdimensionnées pour s'adapter à l'option la plus longue.

Solution CSS

Malheureusement, il n'est pas possible de définir des largeurs différentes pour la boîte de dépôt et la liste déroulante. possible en utilisant CSS seul.

Solution de contournement jQuery

Une solution de contournement utilisant jQuery peut obtenir l'effet souhaité. Cette solution capture divers événements (focus, survol, clic, mouseout, flou) et modifie dynamiquement la classe CSS de la liste déroulante.

if (!$.support.leadingWhitespace) { // if IE6/7/8
    $('select.wide')
        .bind('focus mouseover', function() { $(this).addClass('expand').removeClass('clicked'); })
        .bind('click', function() { $(this).toggleClass('clicked'); })
        .bind('mouseout', function() { if (!$(this).hasClass('clicked')) { $(this).removeClass('expand'); }})
        .bind('blur', function() { $(this).removeClass('expand clicked'); });
}

De plus, le CSS suivant est requis :

select {
    width: 150px; /* Or whatever width you want. */
}
select.expand {
    width: auto;
}

En attribuant la classe « large » à la liste déroulante, la solution de contournement ajuste sa largeur en conséquence, résolvant ainsi l'écart IE.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn