Обычно эти проектные решения не документированы ни в одной спецификации и могут быть получены только из архивов обсуждений рабочей группы, которые оказались общедоступными или объяснены самими авторами спецификаций. Однако в данном конкретном случае HTML 3.2 указывает следующее:
За исключением литерального текста (например, элемента PRE
), HTML обрабатывает непрерывные последовательности символов пробела как эквивалент одного символа пробела (десятичный код ASCII 32). Эти правила предоставляют авторам значительную гибкость при непосредственном редактировании размеченного текста. Обратите внимание, что в будущих версиях HTML может учитываться интерпретация символа горизонтальной табуляции (десятичный ASCII 9) относительно правила табуляции, определенного в соответствующей таблице стилей.
Поведение, которое вы видите сегодня, конечно, намного сложнее, чем было указано в HTML 3.2, но я считаю, что рассуждения все еще применимы. Одним из примеров того, где эта гибкость может быть полезна, является случай, когда у вас есть длинный абзац, который вы намерены перенести и сделать отступ:
<H1>Lorem ipsum</H1>
<P>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fastidii oportere
consulatu no quo. Vix saepe labores an, pri illud mentitum et, ex suas quas
duo. Sit utinam volutpat ea, id vis cibo meis dolorum, eam docendi
accommodare voluptatibus no. Id quaeque electram vim, ut sed singulis
neglegentur, ne graece alterum has. Simul partiendo quaerendum et his.
Если бы пробелы не были свернуты, у вас получился бы абзац с необычно большими пробелами, в котором текст был жестко обернут из-за отступа.
Никакая другая спецификация HTML не предлагает каких-либо рассуждений за этим дизайнерским решением. В частности, HTML 4 только описывает поведение свертывания, а HTML5 и живая спецификация оба откладывают до CSS, который ничего не объясняет либо . Более ранние версии HTML также не содержат каких-либо объяснений, хотя приведенная ниже выдержка приведена в примере фрагмента в HTML 2.0 :
<OL>
...
<UL COMPACT>
...
<LI> Whitespace may be used to assist in reading the
HTML source.
</UL>
...
</OL>