Большая просьба, если я что-то упустил или неверно написал, сообщите в приват.
Теги входящие в XHTML MP
Популярные ошибки валидации
Это должен знать каждый.
1. Все теги и параметры должны быть набраны в нижнем регистре (строчными символами).
2. Значения любых параметров необходимо заключать в кавычки.
3. Требуется закрывать все теги, даже такие, которым не сопоставлен закрывающий тег.
4. Должна соблюдаться правильная вложенность тегов.
5. Нельзя использовать сокращенные атрибуты тегов.
6. Вместо параметра name следует указывать id.
7. Следует определять DTD (document type definition, описание типа документа) с помощью элемента <!DOCTYPE>.
Взято с http://htmlbook.ru
Теперь, то, что я насобирал на форумах WEN.RU и этом.
___
Тег не должен быть пустым или содержать только пробельные символы.
Например, не правильно
<span></span> или <span> </span>.
В таких случаях правильно <span>&#nbsp</span>
Нельзя во внутристрочные теги вкладывать блочные. Например, неправильно <span><div>Яна</div></span>.
Нельзя блочные физические теги вкладывать друг в дружку. Например, неправильно <h4><p>Бутерброд сумасброд</p></h4>.
Нельзя в блочные физические теги вкладывать блочные логические. Например, неправильно <h4><div>Бутерброд сумасброд</div></h4>.
Нельзя вкладывать друг в дружку некоторые однотипные теги вроде <form>. Например, неправильно <form …><form …><div>Чашки</div><form …></form …>.
Все данные формы должны находиться в блочном элементе (абсолютно все).
Для этого хорошо подходит тег <fieldset> или <div>.
Например,
<form action=''>
<fieldset style='border: none'>
Комментарий:
<input type='text' />
<input type='submit' />
</fieldset>
</form>
Но неправильно,
<form action=''>
Комментарий:
<div>
<input type='text' />
<input type='submit' />
</div>
</form>
___
Нельзя нарушать структуру списков и форм.
Например, неправильно <li>список</li> или <ul>Список</ul>.
Правильно <ul><li>список</li></ul>.
Символы '<' и '&' на странице должны быть, заменены на свои спецсимволы < и & т.к. они зарезервированы HTML. Первый уведомляет браузер, о том, что открылся тег, а второй, о том, что объявлен спецсимвол.
У некоторых тегов есть обязательные атрибуты, без которых можно обойтись, но нельзя упускать. Например, у тега <img ... /> атрибут alt.
Тег <script> - запрещён.
При использовании в тегах атрибута style, необходимо добавить мета тег <meta http-equiv='Content-Style-Type' content='text/css' />
По пункту 'Требуется закрывать все теги, даже такие, которым не сопоставлен закрывающий те' добавлю, что одиночные теги <br>, <hr>, <img>, <meta>, <link> должны быть закрыты так <br />, <hr />, <img />, <meta />, <link />.
По пункту ‘Нельзя использовать сокращенные атрибуты тегов’ добавлю, что нельзя писать <input type='' disabled>, правильно будет <input type='' disabled='disabled'>
Спасибо за полезную инфу =)....правда вот на счет:
-------------
Нельзя во внутристрочные теги вкладывать блочные. Например, неправильно <span><div>Яна</div></span>.
-------------
Я не очень понял...
EZHIK, грубо говоря, теги можно разделить на две категории – внутристрочные и блочные (в нашем случае это <span> и <div>). Первые используются для форматирования данных, вторые для группирования элементов.
Внутристрочные теги могут хранить в себе только данные и другие внутристрочные теги.
Блочные же могут хранить в себе помимо перечисленного и другие блочные теги.
Gnom7, т.е <div><h1>Текст</h1></div> - можно
<h1><div>Текст</div></h1> - нельзя
так?
P.S Спасибо за инфо, и разжовывание информации =)
EZHIK, в вашем случае оба тега блочные.
Первый пример - валиден, второй пример - нет, потому что вы вложили логический тег в физический.
Логические и физические теги http://www.sitesnulya.ru/html/tegi-logicheskoy.html
Спасибо за вопрос. Поправил сообщение #2