Проблема не в том, что Chrome подчеркивает конечный пробел, а Firefox - нет. Проблема в том, что Chrome не удаляет завершающий пробел при переносе строки (когда перенос происходит из жесткого <br />
переноса). Пробел подчеркнут, потому что он есть, что несовместимо с тем, как Chrome обрабатывает конечные пробелы при автоматическом переносе текста.
Спецификация CSS для обработки завершающих пробелов в обернутом тексте состояния:
4.1.3. Фаза II: Обрезка и позиционирование
Как выложена каждая строка,
- Последовательность складных пробелов в начале строки удаляется.
- Если размер вкладки равен нулю, вкладки не отображаются. В противном случае каждая вкладка отображается в виде горизонтального сдвига, который выравнивает начальный край следующего глифа с помощью следующей остановки табуляции. Остановки табуляции происходят в точках, кратных размеру табуляции от начального края содержимого блока. Размер вкладки задается свойством tab-size.
- Последовательность складных пробелов в конце строки удаляется.
- Если пробелы или символы табуляции в конце строки неразборчивы, но для них заданы пробелы, предварительно настроенные на перенос, UA должен либо повесить пробел, либо визуально свернуть ширину продвижения символов в любых переполненных пробелах так, чтобы они не занимать место в линии. Однако, если для overflow-wrap заданы пробелы, сворачивание их ширины перемещения не допускается, так как это предотвратит перенос сохраненных пробелов.
Рабочая группа CSS обсудила несогласованную обработку конечных пробелов в своем репозитории github, особо отметив, что обработка конечных пробелов в Firefox является наиболее идеальной:
И, наконец, есть точка, в которой конечные пробелы выглядят просто плохо, а наличие пробела непосредственно внутри закрывающего тега встроенного или перед <br>
является достаточно распространенным непреднамеренным шаблоном разметки, который не должен оказывать плохого влияния на рендеринг. Сохраненное конечное пространство становится заметным как при встроенном стиле, как в примере, представленном @palemieux, так и при выборе выравнивания текста, отличного от start. Это дает реальный вариант использования, указывающий на предпочтение поведению Firefox.
Из этого обсуждения ранее упомянутая спецификация CSS была обновлена (в репозитории github, но пока еще не опубликована), чтобы соответствовать поведению Firefox (Gecko). В частности, обновление пунктов 1 и 3 сверху до:
Последовательность складных пробелов в начале строки (игнорируя любые промежуточные границы встроенного блока) удалена.
Последовательность складных пробелов в конце строки (игнорируя любые промежуточные границы встроенного блока) удалена.
Акцент на добавленные мной изменения.