При использовании шрифта фиксированной ширины я хотел бы указать ширину элемента HTML в символах .
Единица "em" должна быть шириной символа M, поэтому я смогу использовать ее, чтобы указать ширину. Это пример:
<html>
<head>
<style>
div {
font-family: Courier;
width: 10em;
}
</style>
</head>
<body>
<div>
1 3 5 7 9 1 3 5 7 9 1
</div>
</body>
</html>
Результат не тот, что я хотел, поскольку строка браузера прерывается после столбца 15, а не 10:
1 3 5 7 9 1 3 5
7 9 1
(Результат в Firefox и Chromium, в Ubuntu.)
В статье Википедии говорится, что «em» не всегда равна ширине M, поэтому определенно похоже, что единице «em» нельзя доверять.
Ответы:
1em - это высота буквы М, а не ширина. То же самое верно и для ex, который является высотой x. Вообще говоря, это высота прописных и строчных букв.
Другое дело - ширина ....
Измените приведенный выше пример на
и вы заметите, что ширина и высота пролета разные. Для размера шрифта 20 пикселей в Chrome диапазон составляет 12x22 пикселей, где 20 пикселей - это высота шрифта, а 2 пикселя - высота строки.
Теперь, поскольку em и ex здесь бесполезны, возможной стратегией для решения только для CSS было бы
Однако мне не удалось это закодировать. Я тоже сомневаюсь, что это действительно возможно.
Однако такая же логика может быть реализована в Javascript. Я использую здесь повсеместный jQuery:
+1 в (w * 10 + 1) предназначен для решения проблем округления.
источник
ch
Ед. измУстройство, которое вы ищете, есть
ch
. Согласно документам MDN :Он поддерживается в текущих версиях основных браузеров ( caniuse ).
пример
источник
 
или 
. Он функционально эквивалентенch
модулю CSS, но, хотя он широко не поддерживается, его можно использовать как обходной путь в HTML (уродливый взлом, но должен работать).