Je voudrais dire que cela va à l'encontre de la "sagesse conventionnelle", mais je préfère généralement utiliser la taille. La raison en est précisément la suivante : la largeur du champ varie d'un navigateur à l'autre, en fonction de la taille de la police. Plus précisément, elle sera toujours suffisamment grande pour afficher le nombre de caractères spécifié, quels que soient les paramètres du navigateur.
Par exemple, si j'ai un champ date, je souhaite généralement qu'il soit suffisamment large pour afficher 8 ou 10 caractères (deux chiffres pour le mois et le jour et deux ou quatre chiffres pour l'année, avec des séparateurs). En définissant l'attribut size, je m'assure que toute la date sera visible, avec un minimum d'espace perdu. Il en va de même pour la plupart des nombres : je connais la fourchette des valeurs attendues et je règle donc l'attribut size sur le nombre de chiffres approprié, plus la virgule décimale le cas échéant.
Pour autant que je sache, aucun attribut CSS ne fait cela. La définition d'une largeur en em, par exemple, est basée sur la hauteur, et non sur la largeur, et n'est donc pas très précise si vous souhaitez afficher un nombre connu de caractères.
Bien sûr, cette logique ne s'applique pas toujours - un champ d'entrée de nom, par exemple, peut contenir n'importe quel nombre de caractères. Dans ce cas, je me rabattrai sur les propriétés de largeur CSS, généralement en px. Cependant, je dirais que la majorité des champs que je crée ont un contenu connu, et en spécifiant l'attribut size, je peux m'assurer que le plus du contenu, en le plus est affichée sans coupure.
22 votes
Il est généralement déconseillé d'utiliser "px" sur le web. Vous devriez plutôt utiliser des unités relatives ("em", "%", etc.).
58 votes
@kangax Ce n'est qu'une opinion, il n'y a pas de consensus sur l'utilisation de px.
9 votes
@Kos Il s'agissait en quelque sorte d'un consensus
15 votes
@