Почему инструмент Visual Studio Format Document ставит заголовки над двумя строками?

Итак, если у меня есть заголовок HTML, подобный этому

<h2>A Heading</h2>

и я запустил Edit -> Format Document, и это выглядит так:

<h2>
    A Heading</h2>

почему это? Он не делает это с другими элементами блока, но делает это с другими встроенными элементами (например, <label>).

Обновить. Чтобы уточнить, я имею в виду, почему это значение по умолчанию, а не где настройки для изменения этого

Ответы

Ответ 1

Он делает это, потому что это настройки по умолчанию. В старых браузерах, иногда имеющих концевой тег блока или встроенного элемента в новой строке после дочернего элемента (эффективно оставляя пробелы, например, неразрывное пространство или пустой текст node), влияет на отображение страницы. У меня были проблемы с этим раньше. Например, следующее может корректно отображать ошибки, если у ваших якорей есть границы или дополнения:

<a>
    <img src="..." />
</a>

Иногда в нижней части ссылки будет дополнительное расстояние. Изменение его на следующее: удаляет дополнительный интервал:

<a><img src="..." /></a>

В принципе, тупое форматирование решает некоторые проблемы с рендерингом в браузерах с поддержкой CSS, как IE6. Если у вас есть IE6, посмотрите этот JSFiddle, который я создал, чтобы проиллюстрировать проблему. Там дополнительное расстояние в нижней части изображения, где метки привязки существуют в их собственных линиях.

Из Блог Скотта Гатри:

Если вы отформатируете выделение разметки и увидите, что тег close не был перемещен в отдельную строку - это потому, что между окончанием предыдущей разметки и завершающим тегом нет пробела, и, поскольку такой VS осторожен не изменять его, чтобы избежать изменения семантики рендеринга.

Таким же уродливым, как форматирование или вывод конструктора в Visual Studio, может быть больше работать в более браузерах, чем правильно отформатированная разметка (например, XHTML).

Чтобы изменить значения по умолчанию для форматирования в Visual Studio, перейдите по ссылке:

Tools > Options > Text Editor > HTML > Format > Tag Specific Options...

В разделе "Настройки по умолчанию" измените параметр "Разрывы строк" ​​на "До и после" для параметров "Тег тега поддержки клиента и сервера".