Почему <div/"> не обрабатывается так же, как <div></div>

Я просто тестировал это, и как в IE8, так и в Chrome я вижу то же самое, пустые (стилизованные) divs отображаются по-разному в зависимости от того, каким образом вы это делаете. Меня это раздражает, потому что первое кажется настолько опрятным.

Почему?

EDIT: спасибо за разъяснения по XHTML Vs HTML. В настоящее время у меня есть это:

<html>
<head>
<meta http-equiv="Content-Language" content="en-gb" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title>Test</title>

Какой лучший выбор? Я бы предпочел XHTML, так как считаю, что это немного лучше.

Ответы

Ответ 1

В XHTML (обслуживается с Content-Type of application/xhtml+xml), <div /> действительно работает. Но в режиме HTML (text/html), тогда нет; HTML не является XML, а синтаксис пустого тэга XML не распознается.

Ответ 2

<div /> является недопустимой разметкой. Поскольку div не может быть закрыт сам собой (он просто выводит пустой div), некоторые браузеры могут отображать его по-разному. спецификации HTML 4.01 утверждают, что divs (и промежутки) должны иметь как начальный, так и конечный теги.

Также рассмотрите этот вопрос.

Ответ 3

XHTML и HTML работают по-другому.

В XHTML 2 идентичны и семантически не различаются.

В простой HTML вы не можете самостоятельно закрывать теги. И сделать ваши теги закрытыми не плохо, это просто не имеет значения. Самозакрытия игнорируются.

Итак, в обычном HTML <div/> рассматривается как <div>, который никогда не закрывается. Поэтому вам нужно </div> закрыть тег.

HTML У браузеров есть жестко запрограммированный список самозакрывающихся тегов и обрабатывать его для вас.