Подтвердить что ты не робот

Почему <div class= "clear" ></div> вместо <div class= "clear" /">?

Я просто понял, что:

<div class="clear"/>

после того, как серия плавающих divs вызывает хаос компоновки, а

<div class="clear"></div> 

отлично работает.

Кто-нибудь может объяснить это?

Это CSS:

div.clear {
    clear:both;
}
4b9b3361

Ответ 1

<div class="clear"/>

Если вы используете страницу XHTML как text/html, браузеры не читают ее, используя настоящий синтаксический анализатор XML. Они используют простой старый парсер HTML, который не знает о самозакрывающихся тегах. Для анализатора HTML4 это просто открытый тег с некоторой странной пунктуацией. (Если браузеры действительно использовали правила SGML, это было бы совсем другое нежелательное, но они этого не делают.)

Пока IE9 не станет широко распространенным, мы не сможем обслуживать веб-страницы общего назначения как application/xhtml+xml, что необходимо для того, чтобы браузер использовал реальные правила синтаксического анализа XML. До этого времени, если вы пишете документы XHTML, вам нужно будет сделать ваши документы обратно совместимыми с простым HTML, что означает всегда и только использование самозакрывающегося синтаксиса для элементов, объявленных как модель контента EMPTY. (img, br и т.д.)

Есть больше правил о том, что вам нужно сделать, чтобы написать HTML-совместимый XHTML, но это самый важный. Приложение C стандарта XHTML 1.0 - это список различий; это выглядит немного сложнее, но многие из них касаются функций, которые вы не хотите использовать в любом случае, а некоторые теперь неактуальны, поскольку они говорят о том, что такие древние браузеры, как Netscape 4. Практика помещения пространства до /> больше не требуется, например, для чего-то общего.

Ответ 3

<div class="clear"/>  

Этот синтаксис недействителен HTML/XHTML. Любой тег, который может содержать не может быть закрытым (даже если в теге не требуется контент, поэтому контент, содержащий теги, такие как div, span, p и т.д., Никогда не может быть на самом деле теги, которые не могут содержать контент типа <br />, всегда должны быть закрыты.