Как HTML работает с пробелами в разметке? - PullRequest
1 голос
/ 02 июля 2010

Я не говорю о пустом месте в контенте, но о самом коде.

У меня была куча ошибок проверки в моем HTML, и я обнаружил, что это потому, что в моей разметке пропущен пробел -

<td class="col_title"colspan="2">

Line 1, Column 80: attributes construct error
Line 1, Column 80: Couldn't find end of Start Tag td line 1
Line 1, Column 80: Opening and ending tag mismatch: tr line 1 and td
Line 1, Column 80: Opening and ending tag mismatch: tbody line 1 and tr
Line 1, Column 80: Opening and ending tag mismatch: table line 1 and tbody
Line 1, Column 80: Opening and ending tag mismatch: div line 1 and table
Line 1, Column 80: Opening and ending tag mismatch: body line 1 and div
Line 1, Column 80: Opening and ending tag mismatch: html line 1 and body
Line 1, Column 80: Extra content at the end of the document

All were highlighting the following line (I was validating local HTML if it makes any difference)

…1.0 Transitional//EN"  "http://www.w3.**o**rg/TR/xhtml1/DTD/xhtml1-transitional.dt…

Я предполагал, что это не имеет значения, но валидатор W3C утверждает, что иначе.Добавление пробела между ними устранило ошибки -

<td class="col_title" colspan="2">

Это означает, что вы должны быть очень осторожны при написании HTML, и такие ошибки очень трудно найти.Я искал отсутствующие закрытые теги в таблице.

Имеет ли HTML одинаковые пробелы для каждого тега?

Ответы [ 2 ]

2 голосов
/ 02 июля 2010

Поскольку кавычки являются необязательными в HTML, пробелы не могут быть.Браузер не сможет определить, где заканчивалось значение и начинался следующий атрибут:

<td class=col_titlecolspan=2>

Некоторые браузеры более требовательны к этим вещам, чем другие, и он отличается между HTML и XHTML.Валидатор - хороший инструмент, так как он более строг в отношении синтаксиса, чем любой браузер.Если он там работает, ни у одного браузера не возникнет проблем с пониманием синтаксиса.

2 голосов
/ 02 июля 2010

Рекомендация W3C требует пробелов:

Элементы могут иметь связанные свойства, называемые атрибутами, которые могут иметь значения (по умолчанию или заданные авторами или сценариями).Пары атрибут / значение появляются перед последним «>» начального тега элемента.Любое количество (допустимых) пар значений атрибутов, разделенных пробелами, может появиться в начальном теге элемента.Они могут появляться в любом порядке.

http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2

Конечно, браузеры должны исправлять найденные ошибки, поэтому HTML-код работает правильно.Однако вы должны попытаться создать действительный HTML: рендеринг действительного HTML определен и (более или менее) предсказуем, но рендеринг недействительного HTML в основном случайный; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...