«Пустое значение», как еще называется подобная ошибка, легко исправляется, если присвоить атрибуту значение, совпадающее с названием. В табл. 3.2 приведены некоторые атрибуты и как они записываются в HTML и XHTML.
Табл 3.2. Сопоставление атрибутов в HTML и XHTMLHTML | XHTML |
---|
checked | checked="checked" |
compact | compact="compact" |
disabled | disabled="disabled" |
ismap | ismap="ismap" |
multiple | multiple="multiple" |
nohref | nohref="nohref" |
noresize | noresize="noresize" |
noshade | noshade="noshade" |
nowrap | nowrap="nowrap" |
readonly | readonly="readonly" |
selected | selected="selected" |
В примере 3.10 показано корректное использование вышеприведенной формы.
Пример 3.10. Правильное использование атрибутов
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XHTML</title>
</head>
<body>
<form action="handler.php" method="post">
<fieldset>
<input type="text" value="Совет дня" readonly="readonly" />
</fieldset>
</form>
</body>
</html>
Вместо атрибута name необходимо указывать id
Атрибут name определяется в HTML для тегов <a>, <frame>, <iframe>, <img> и <map> и предназначен для обозначения элемента с целью последующего к нему обращения из скриптов. В XHTML атрибут name частично вышел из употребления, а вместо него следует использовать id, как показано в примере 3.11.
Пример 3.11. Идентификатор рисунка
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XHTML</title>
</head>
<body>
<p><img src="images/graph2.png" id="pic1" alt="Картинка" /></p>
</body>
</html>
Указанное правило не применяется к элементам форм, вроде <input type="radio" />, где без атрибута name вообще не обойтись.
Следует определять DTD
Все XHTML-документы обязательно должны содержать элемент <!DOCTYPE> в первой строке кода, а также придерживаться иерархической структуры вложения тегов.