Почему <div /> не обрабатывается так же, как <div></div> - PullRequest
13 голосов
/ 25 января 2010

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

Почему?

РЕДАКТИРОВАТЬ : спасибо за разъяснения по XHTML против 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, так как считаю, что он немного лучше.

Ответы [ 3 ]

19 голосов
/ 25 января 2010

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

6 голосов
/ 25 января 2010

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

Также взгляните на этот вопрос .

5 голосов
/ 25 января 2010

XHTML и HTML работают по-разному.

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...