Bonsoir à tous
Je cherche à faire la chose suivante:
Ce code est généré par un script Javascript à partir de données fournies par un programme php.
Selon les cas, la longueur des "Textes complets" peut beaucoup varier.
Comme on le sait, la largeur de la zone dans laquelle on affiche la valeur est calculée par le navigateur en fonction de la longueur (en pixel) du texte le plus long à afficher dans cette zone.
Comme la valeur par défaut "-------- choisir dans la liste -------" est celle qui s'affiche tant qu'on n'a rien choisi, de texte apparait à gauche dans une case bien trop grande pour ce texte.
Je cherche un moyen simple pour que ce texte occupe de façon "harmonieuse" la zone en cause.
Je n'ai pas trouvé pour l'instant de meilleure solution que de choisir une police de largeur fixe et d'ajouter des "-" à gauche et à droite du texte "choisir dans la liste" pour avoir une longueur égale à celle du texte le plus long.
Par contre si je veux une police de largeur variable, il ne suffit pas de compter le nombre de caractères, il faut trouver la largeur en pixel correspondante.
J'ai déjà fait ça dans un autre script, ça passe par une div dissimulée dans laquelle je mets le texte et je demande la largeur en pixels...
Quelqu'un aurait il une idée moins basique pour résoudre ce petit problème, du genre CSS aux petits oignons?
Modifié par PapyJP (05 Feb 2015 - 18:57)
Je cherche à faire la chose suivante:
<select name="option">
<option>-------- choisir dans la liste --------</option>
<option value="value1">Texte complet de value1</option>
<option value="value2">Texte complet de value2</option>
<option value="value3">Texte complet de value3</option>
</select>
Ce code est généré par un script Javascript à partir de données fournies par un programme php.
Selon les cas, la longueur des "Textes complets" peut beaucoup varier.
Comme on le sait, la largeur de la zone dans laquelle on affiche la valeur est calculée par le navigateur en fonction de la longueur (en pixel) du texte le plus long à afficher dans cette zone.
Comme la valeur par défaut "-------- choisir dans la liste -------" est celle qui s'affiche tant qu'on n'a rien choisi, de texte apparait à gauche dans une case bien trop grande pour ce texte.
Je cherche un moyen simple pour que ce texte occupe de façon "harmonieuse" la zone en cause.
Je n'ai pas trouvé pour l'instant de meilleure solution que de choisir une police de largeur fixe et d'ajouter des "-" à gauche et à droite du texte "choisir dans la liste" pour avoir une longueur égale à celle du texte le plus long.
Par contre si je veux une police de largeur variable, il ne suffit pas de compter le nombre de caractères, il faut trouver la largeur en pixel correspondante.
J'ai déjà fait ça dans un autre script, ça passe par une div dissimulée dans laquelle je mets le texte et je demande la largeur en pixels...
Quelqu'un aurait il une idée moins basique pour résoudre ce petit problème, du genre CSS aux petits oignons?
Modifié par PapyJP (05 Feb 2015 - 18:57)