AAARGH!!!! НУ ЧИТАЙТЕ ЖЕ! ЧЁРТОВЫ! СПЕЦИФИКАЦИИ! НАКОНЕЦ! Ни одна. Спецификация. SGML/HTML. Никогда. Не. Разрешала. Перекрытия. Тегов. И ни одна. Спецификация. X(HT)ML. Никогда. Не. Обвиняла. HTML. В этом. (Спека XHTML1.0 обвиняла браузеры в излишней терпимости к этой ошибке, но никто не читает текст черным по белому - только "красные" и "зеленые" примеры...) HTML и X(HT)ML различаются разрешенными вариантами сокращенного синтаксиса. Первый явно выделяет пустые элементы (те, которые заведомо не могут иметь никакого содержимого - br, hr, img...) тем, что запрещает для них закрывающий тег (end tag: forbidden), подчеркивая этим их особую роль. Второй разрешает "самозакрытие" тегов (основанное на т.н. "Null End Tag"-синтаксисе из того же SGML), причем - формально - любых, хоть пустых, хоть нет. И для SGML-парсера это "самозакрытие" - источник как минимум неоднозначности. Ну и правильные способы закрытия элементов различаются, хотя и там, и там их по два: в X(HT)ML - закрывающий тег и "самозакрытие" для всего, в HTML - явный закрывающий тег и контекст, в котором элемент однозначно обязан закрыться (для элементов с опциональным закрывающим тегом). X(HT)ML-ные правила, конечно, нагляднее, очевиднее и проще для понимания. С HTML-ными правилами приходится как минимум запоминать (или подсматривать в справочнике), какие элементы являются пустыми, для каких закрывающий тег необязателен и т.п. Но загвоздка в том, что X(HT)ML-ная простота и наглядность работают только с правильным Content-type, в остальных случаях HTML-ные особенности нужно всё равно как минимум учитывать. В двух словах: в HTML за структуру разметки отвечает кодер, а за структуру DOM - браузер. В XHTML - наоборот. Каждый сам выбирает, что ему важнее - но надо помнить, что браузер отображает и стилизует именно DOM... В остальном это и впрямь дело вкуса. Хотя пользоваться правилами того языка, на котором разметку будет читать браузер - имхо, немножко честнее А что с этим не так? Для быстрых проверочных примеров никогда не ставлю лишние теги, никаких проблем не наблюдаю (ни со скриптами, ни со стилизацией). То, что html5shi(v|m) когда-то требовал явно открытого body - проблема этого конкретного скрипта, а не разрешенного (более того, рекомендованного гуглом!) синтаксиса...