2010-02-05 5 views
3

J'ai un tag avec de nombreux nœuds enfants. Je veux garder la largeur de cette liste déroulante à une taille minimum. Cependant, il y a des moments où le innerHTML d'au moins une option est très long, forçant la liste déroulante à élargir sa largeur. Ce que j'ai l'intention de faire est de tronquer le texte long et d'utiliser des ellipses pour indiquer que certains caractères ont été tronqués ("phrase très loooooong" devient "très loooooo .."). Pour afficher le texte intégral, je pense à utiliser un message d'info-bulle sur l'événement mouse over.HTML <option> tag tooltip

Malheureusement, l'événement onmouseover pour chaque tag ne semble pas fonctionner. Que puis-je faire pour obtenir cet effet?

Merci

+0

Avez-vous essayé d'utiliser CSS sur la balise

+0

L'attribut css max-width/width a fonctionné. Cependant, j'essaie de montrer le texte intégral en utilisant simplement les fonctionnalités par défaut de HTML – Erwin

Répondre

11

Ajout d'un attribut title à chaque option devrait faire l'affaire.

<option value="1" title="Long description">Short desc...</option> 
+0

Wow .. cela fonctionne. Woulda n'a jamais suspecté :) – Erik

+0

Hey cool! Ça a marché! Est-ce une solution multi-plateforme? – Erwin

+1

AFAIK, oui. Le titre est un attribut HTML standard et devrait fonctionner entre les navigateurs et les systèmes d'exploitation. Il ne fonctionnera probablement pas dans les dispositifs tactiles tels que l'iPhone, cependant (parce qu'il n'y a aucun curseur pour passer au-dessus des options). – salgiza

0

Vous pouvez régler la largeur de la <select> et le menu déroulant se prolonger au-delà de la largeur de la sélection. Essayez ce qui suit:

<select style="width: 30px"> 
    <option>1</option> 
    <option>really long</option> 
    <option>even more longer</option> 
    <option>This should be long enough to stretch to the end of the page, but the select is still not very long</option> 
</select>