Ответ 1
Нет. HTML 4.x не имеет понятия самозакрывающихся тегов.
Он действителен в XHTML.
Возможный дубликат:
Допустимы ли самозакрывающиеся теги в HTML5?
Например:
<div id="myDiv" />
Затем можно было бы что-то сделать, чтобы заполнить этот div, используя Javascript.
Это действительный HTML?
Нет. HTML 4.x не имеет понятия самозакрывающихся тегов.
Он действителен в XHTML.
Div не являются допустимыми тегами, закрывающими закрытие. Чтобы иметь пустой div, было бы лучше сделать это:
<div id="myDiv"></div>
В соответствии с декларацией XML и определениями документа XHTML 1.0 и 1.1 это прекрасно: тег с нулевым концом (>
) может использоваться, когда сразу после ближайшего стартового тега с нулевым значением (/
), и ваш код эквивалентен <div id="myDiv"></div>
.
Другое дело, сможет ли любой конкретный потребитель правильно обработать это.
Объявление SGML, используемое HTML 4.01, позволяет сократить теги, но имеет другой синтаксис для тегов с нулевым концом; там вы можете написать <div id="abc"/this is a non-empty div/
. Опять же, пробег может отличаться в зависимости от поддержки браузера. (Мои деньги на "нет".)
Будущие версии HTML (HTML5?, если это имя все еще живое) больше не реализованы как языки SGML, и поэтому они просто позволяют то, что они говорят, но не прибегают к формальной грамматике.
Самозакрывающиеся теги в XHTML, реализованные браузерами:
Каковы все допустимые самозакрывающиеся элементы в XHTML (как это реализовано в основных браузерах)?
Самозакрывающиеся теги в html5:
Я запустил эти два блока кода через W3C validator. Скопируйте и вставьте код во входные данные на вкладке Validate by Direct Input, чтобы просмотреть результаты для себя.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>title</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" >
</head>
<body><div id="Mydiv" /></body>
</html>
Блок кода с Doctype переходного HTML 4.01 не прошел проверку.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>Test</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
</head>
<body><div id="Mydiv" /></body>
</html>
Когда я добавил переходный doctype XHTML 1.0, изменил метатег на сам закрывающий тег и добавил в строку hmml xmlns, прошла проверка.
Итак, чтобы ответить на первую половину вашего вопроса, он действителен HTML в XHTML 1.0 Transitional doctype. Независимо от того, используете ли вы javascript для его правильного заполнения, я не уверен.
Нет, это действительно XML (а не HTML), и, насколько я знаю, будет приниматься только в том случае, если документ отправляется с типом приложения /xml.
Однако он может работать с XHTML и объявлением Doctype XHTML.