Пробелы не игнорируются в предварительном теге

Я читал, что тег «pre» сворачивает все пробелы и вкладки в одно пространство, но для меня это не так.

почему это так? это зависит от веб-браузера или мне нужно сделать что-то еще?


person hd.    schedule 09.08.2011    source источник


Ответы (2)


Из спецификации HTML 4.01

Элемент PRE сообщает визуальным агентам пользователя, что заключенный в них текст «предварительно отформатирован». При обработке предварительно отформатированного текста визуальные пользовательские агенты:

  • Может оставлять пустое пространство нетронутым.
  • Может отображать текст шрифтом с фиксированным шагом.
  • Может отключить автоматический перенос слов.
  • Не следует отключать двунаправленную обработку

Теги PRE будут оставлять пустое пространство, поскольку вы его напечатали. Цель именно в этом. Если вы не используете тег pre, стандартный HTML будет сворачивать пустое пространство, как вы написали. Используйте PRE, если вам нужно сохранить пустое пространство, а не свернуть его.

Вот пример в JSFiddle.

Это позволит сохранить пустое пространство:

 <pre>
    Spaces
     and more
      galore
 </pre>

Это приведет к сворачиванию пробела:

 <div>
   All
    together
     now
 </div>
person ghayes    schedule 09.08.2011
comment
поэтому он резервирует все пробелы. - person hd.; 09.08.2011
comment
Да. В этом весь смысл тега PRE. Например, он используется для кода (например, если вы печатаете C++) или стихов/любой работы, где вы уже выполнили работу по расстановке пробелов. HTML обычно не сохраняет это пространство, чтобы вы могли лучше структурировать свой HTML-файл. - person ghayes; 09.08.2011

Тег PRE просто сохранит ваше содержимое в том же формате, в котором вы его написали. он используется для сохранения вашего «предварительно отформатированного» текста в том виде, в котором вы его написали.

person Caffeinatedwolf    schedule 09.08.2011