CSS Values and Units Module Level 3

Tiens, il existe une unité CSS équivalente au "em", mais pour les chiffres : le "ch".

Le "em" est la hateur du "M" dans une police donnée (du caractère du M, en fait, la pièce en plomb permettant d’imprimer un "M", qui pour le M était carrée). Elle peut être utile si, par exemple, votre bloc de texte doit faire exactement 10 lettres de large. De cette façon, que le bloc contienne "iiiiiiiiii" ou "mmmmmmmmmm", sa largeur sera toujours identique (par exemple pour aligner des blocs).

Pour les nombres, on peut utiliser le "ch" : les lettres sont toutes moins larges que les lettres, donc utiliser des "em" peut ne pas être pertinent.

Perso j’utilise ça pour un bloc qui contient une date : 25, ou 31, par exemple, mais aussi 1 ou 3. La case doit toujours faire la même largeur. Je ne veux pas utiliser le "px" car ce n’est pas proportionnel. Utiliser le "em" est chiant aussi car (à part pour les polices à chasse fixe), les largeurs des lettres et celles des chiffres ne sont pas toujours consistantes.
Du coup j’utilise ici une largeur de "2ch".

Notez qu’il existe aussi l’unité "ex" qui est la hauteur d’un x dans une police donnée.

Le ch est plutôt bien supporté par les navigateurs.

Voir aussi : https://css-tricks.com/the-lengths-of-css/