Подтвердить что ты не робот

&nbsp приводит к отказу проверки HTML5

Сейчас я применяю подход "HTML4.5" к существующему узлу XHTML1.0 Strict. Идея состоит в том, чтобы изменить doctype и применить семантические классы, соответствующие новым элементам HTML5 (< div class="aside"> и т.д.), И сделать все, что я могу избежать, без нарушения Internet Explorer (IE) (например, применение нового <input>).

Единственная проблема, с которой я столкнулся, заключается в том, что валидатор W3C не любит &nbsp; или &copy;, а html5.validator.nu не имеет проблем.

Я знаю, что валидаторы HTML5 являются экспериментальными на этом этапе. Должен ли я заменить &nbsp; чем-нибудь? Если да, то что?

Моя кодировка на этом конкретном сайте UTF-8.

4b9b3361

Ответ 1

&nbsp; отлично работает в text/html HTML5, и он проверяет меня на W3.

Где он не будет проверяться, находится в XHTML5. Единственными встроенными объектами в XML являются &amp;, &lt;, &gt;, &quot; и &apos;. XHTML1 привел список сущностей HTML с помощью DTD, на который ссылается <!DOCTYPE>, но (X) HTML5 больше не использует DTD, поэтому это означает, что в сериализации XML вы не можете использовать объекты HTML.

Символьная ссылка, такая как &#xA0;, все еще в порядке. И если вы обслуживаете свою страницу в правильной кодировке, вы можете просто включить символ пробела U + 00A0 без пробега:  . (Конечно, это будет раздражать редактирование, если ваш текстовый редактор не визуально не различает свободное пространство и стандартное пространство.)

Ответ 2

Просто замените все &nbsp; на &#160;