Хотя в XHTML следует избегать самозакрывающегося <div />
(поскольку в устаревших браузерах HTML он не будет анализироваться должным образом), на самом деле это не имеет ничего общего с XHTML: это проблема компоновки.
<div></div>
- это блочный элемент, не содержащий содержимого. Поэтому его высота равна нулю; Вы не можете видеть это.
<div> </div>
- это блочный элемент, содержащий одну строку текста. Его высота равна свойству line-height
.
Если вы хотите, чтобы пустой div имел некоторую высоту, вы должны сказать так:
<div style="width: 50%; height: 2em; background: red;"></div>
Это старая ошибка IE5, что пустой div все равно будет отображаться с высотой, как если бы он содержал строку текста. Когда вы используете тип документа в стандартном режиме (которым вы должны быть, независимо от того, используете ли вы HTML или XHTML, Transitional или Strict), вы не увидите такого поведения.