Избавьтесь от новых строк между тегами span.Вот так:
<div>
8:00
<span>8</span><span>:</span><span >00</span>
</div>
Мне сложно найти его в спецификации, но, похоже, практически все браузеры берут все пробелы и "сжимают" его до одного пробела.
Вот сообщение , относящееся к SO .
В принятом ответе рекомендуется использовать String.Format
для более точной обработки рендеринга - это может помочь в вашей конкретной ситуации.
Обновление:
Согласно спецификации HTML 4 :
SGML (см. [ISO8879], раздел 7.6.1) указано, чторазрыв строки сразу после начального тега должен игнорироваться, как и разрыв строки непосредственно перед конечным тегом.Это относится ко всем HTML-элементам без исключения.
Также есть интересное описание, описывающее это как ошибку здесь .