Можно ли использовать самозакрывающийся тег DIV?

Возможный дубликат:
Допустимы ли самозакрывающиеся теги в HTML5?

Например:

<div id="myDiv" />

Затем можно было бы что-то сделать, чтобы заполнить этот div, используя Javascript.

Это действительный HTML?

Ответ 1

Нет. HTML 4.x не имеет понятия самозакрывающихся тегов.

Он действителен в XHTML.

Ответ 2

Div не являются допустимыми тегами, закрывающими закрытие. Чтобы иметь пустой div, было бы лучше сделать это:

<div id="myDiv"></div>

Ответ 3

В соответствии с декларацией 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, и поэтому они просто позволяют то, что они говорят, но не прибегают к формальной грамматике.

Ответ 5

Я запустил эти два блока кода через 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 для его правильного заполнения, я не уверен.

Ответ 6

Нет, это действительно XML (а не HTML), и, насколько я знаю, будет приниматься только в том случае, если документ отправляется с типом приложения /xml.

Однако он может работать с XHTML и объявлением Doctype XHTML.