Это потому, что браузер не имеет понятия разрывов строк или вкладок вне особых ситуаций, таких как тег <pre>
, поэтому, где бы он их ни находил, он конвертирует их в пробелы. Имейте в виду, что он будет игнорировать все пробелы, разрывы строк и табуляции, кроме первого. У вас может быть 30 последовательных разрывов строк и 100 пробелов в вашем коде, но он будет отображаться как 1 пробел в браузере.
Даже код, который имеет только разрыв строки, но без пробелов или отступов все равно будет показывать пробел, если rendered.
Пример: код с переводом строки, но без пробела:
<button>text1</button>
<button>text2</button>
Из-за переноса строки между ними будет отображаться 1 пробельный символ. Вы можете проверить это в скрипте.
Обычно любой вид форматирования, подобный этому, обрабатывается CSS.
Объяснение MDN примерно так же хорошо, как и любое другое. Фактический spe c.