Ответ 1
В XHTML (обслуживается с Content-Type
of application/xhtml+xml
), <div />
действительно работает. Но в режиме HTML (text/html
), тогда нет; HTML не является XML, а синтаксис пустого тэга XML не распознается.
Я просто тестировал это, и как в 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, так как считаю, что это немного лучше.
В XHTML (обслуживается с Content-Type
of application/xhtml+xml
), <div />
действительно работает. Но в режиме HTML (text/html
), тогда нет; HTML не является XML, а синтаксис пустого тэга XML не распознается.
<div />
является недопустимой разметкой. Поскольку div не может быть закрыт сам собой (он просто выводит пустой div), некоторые браузеры могут отображать его по-разному. спецификации HTML 4.01 утверждают, что divs (и промежутки) должны иметь как начальный, так и конечный теги.
Также рассмотрите этот вопрос.
XHTML
и HTML
работают по-другому.
В XHTML
2 идентичны и семантически не различаются.
В простой HTML
вы не можете самостоятельно закрывать теги. И сделать ваши теги закрытыми не плохо, это просто не имеет значения. Самозакрытия игнорируются.
Итак, в обычном HTML
<div/>
рассматривается как <div>
, который никогда не закрывается. Поэтому вам нужно </div>
закрыть тег.
HTML
У браузеров есть жестко запрограммированный список самозакрывающихся тегов и обрабатывать его для вас.