вызывает сбой проверки HTML5

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

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

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

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


person isNaN1247    schedule 08.11.2010    source источник


Ответы (2)


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

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

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

person bobince    schedule 08.11.2010

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

person Mehedi    schedule 24.01.2012
comment
я предполагаю, что правильный десятичный объект для &nbsp; должен быть &#160; или можно также использовать шестнадцатеричный объект &#xa0; - person Gauts; 17.06.2012
comment
Некоторые другие полезные сущности символов HTML — w3schools.com/html/html_entities.asp - person venkat; 14.06.2019