Éviter que les sélecteurs ne dépassent ou n'aient pas de largeur du tout

La lib select2 cache les <select> originaux et ajoute un élément de substitution à la suite.

Elle essaye de faire en sorte que cet élément ait la même largeur que le <select> original en lui ajoutant style=width: Npx. Le problème c'est que c'est une taille fixe, et cela peut poser problème notamment dans 2 cas :

  • Si le conteneur du <select> change de taille après l'initialisation de select2, alors l'élément peut dépasser.
  • Si le <select> est invisible au moment de l'initialisation de select2, alors on se retrouve avec style=width: 0px.

Cf. onglets de saisies saisies!240 (closed)

Une solution serait de mettre cette règle à la place du width: Npx :

width: clamp(M, Npx, 100%);
  • M est une largeur minimale arbitraire qui sera utilisé en fallback quand la largeur initiale est pas connue
  • Npx est la largeur fixe de référence
  • 100% évite que ça dépasse du conteneur

Je vais propose ça en PR dans la lib, mais en attendant que ça soit accepté/validé/intégré, le plugin pourrait peut-être s'en charger lui-même : juste après l'init, regarder s'il y a cette largeur en dur, et remplacer la règle.

ping @maieul @marcimat