Это определенно проблема кернинга.
Поскольку вы заключаете отдельные символы в span
элементы, механизм шрифтов больше не будет рассматривать текст как непрерывную строку;и как это могло быть - промежутки можно отформатировать так, чтобы они появлялись где угодно или вообще исчезали в этом отношении.
Более формально говоря, элементы span
будут получать для своих рендеров свои собственные блочные модели.Содержимое полей будет отображаться независимо, поэтому у текстового рендерера нет возможности использовать стратегии кернинга.
Если вы хотите, чтобы представления с span
s и без него выглядели похожими друг на друга, выможно было бы попытаться мягко намекнуть двигателю кернинга, чтобы остановить то, что он делает, установив font-kerning: none
.