Неверный HTML, чтобы написать "&" сам по себе? Зачем?
Возможный дубликат:
Мне действительно нужно кодировать '&' как '& amp;' ?
Я знаю, что W3C рекомендует использовать "& amp;" (десятичное число ASCII 38) вместо "&", чтобы избежать путаницы с началом ссылки на символ ", и что прибор предупреждает о" unescaped ", который должен быть записан как & amp; " но, несмотря на эти предупреждения, допустимо написать (скажем) "Tiffany & Co." вместо более осторожных "Тиффани и Ко"?
Я знаю, что приведенный выше пример отображается так, как ожидалось (то есть, одинаково) во всех браузерах, которые я пробовал, но это вопрос синтаксиса для языковых юристов. Мне кажется, что, пока выражение не имеет формы "& blah;", оно должно быть законным. (То же самое с использованием угловых скобок, если вы не пишете "
Кроме того, тот факт, что пропуск li> не считается предупреждением, а unescaped & s, говорит о несоответствии синтаксиса HTML. На самом деле, если мы будем полагаться на умственные способности синтаксического анализатора, пропустить ul> (например) должно быть в порядке, если (незаконченный) список является самой последней частью документа: нет ul>, нет body>, нет html>... нет никакой двусмысленности, верно?
PS: Я только что узнал, что (разумные) угловые скобки без экранирования не приводят к предупреждению в чистоте, но обнаруживаются как ошибки валидатором W3C, в то время как амперсанды без экранирования выдают предупреждения в обоих местах. Пойди разберись...
1 ответ
Недействительным? Да. Свободный амперсанд внутри HTML-разметки приведет к ошибке синтаксического анализатора.
Могут ли современные браузеры игнорировать ошибку и правильно анализировать? Более вероятный.
Но это искаженный HTML.