Ваши вопросы наверняка заглянули в мое любопытство.Надеюсь, я смогу пролить на них некоторый свет.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 100 * * * * * * * * 100 * * * 100 * * *.1011 *SCRIPT
PRE
Это означает, что все остальные элементы контейнера должны были подавлять пробелы вокруг них.Ваша ссылка Mozilla ( «Пробелы в DOM» ) гласит:
В Mozilla все пробелы в текстовом содержимом исходного документа представлены в DOM ...
Это становится очевидным при запуске тестовой страницы с множеством пробелов и разрывов.Просмотр сгенерированного кода (Вы можете сделать это с помощью панели инструментов Web Developer : выберите Просмотр источника - Просмотр сгенерированного источника ) показывает, что «текстовое содержимое» означает всевнутри корневого тега HTML
.Итак, другими словами, есть только подавление пробелов в самом внешнем теге (HTML
).
Запуск той же страницы в IE8 рассказывает немного другую историю (просмотрите сгенерированный источник, нажав F12 и в Инструментах разработчика нажмите CTRL - G ).Они также не на 100% совместимы, но более совместимы, чем Firefox.Они подавляют не только элемент HTML
, но и почти все остальное (как и должно быть).Они прислушиваются к правилу SCRIPT
и STYLE
elements 'preserve
, но все же оставляют разрыв между ними.В теле это заменяло многократные разрывы единственными разрывами.Вложенные DIV
теги (и текст их содержимого) в одной строке были разбиты с перерывами.
Короче говоря, и Firefox, и IE8 не соответствуют пользовательским агентам .
И нет, вы не можете подавить пробел между двумя тегами с помощью свойства white-space
(вы, вероятно, могли бы сделать это с помощью JavaScript / jQuery, если бы вы действительно этого хотели).Свойство white-space
определяет, как обращаться с пробелами в части содержимого элемента (например, white-space: nowrap
предотвращает перенос текста).