Во-первых, не могу не отметить, что Вы так и не разлюбили свойства display: table; и display: table-cell;. А ведь Вас неоднократно предупреждали, что не доведут они Вас до добра... ) Ну, да ладно...
Во-вторых, уберите Христа ради вот это:
Код:
<?xml version="1.0" encoding="Windows-1251"?>
От этой инструкции IE6 просто переколбашивает и он впадает в кому (переключается в quirks mode)...
В третьих, смею Вас разочаровать: седьмой эксплорер разработчики так и не научили понимать свойства display: table; и display: table-cell;. Но загвоздка тут в другом:
Если не указывать !DOCTYPE, IE7 начинает понимать (!) стилевые инструкции, предназначенные для IE6. Т.е. всё то, что экранировано через конструкцию * html.
Поэтому то "вертикальное выравнивание", которое Вы наблюдаете в седьмом без доктайпа – есть ни что иное, как выполненные инструкции для IE6. Не более того. А поскольку при наличии правильного доктайпа IE7 перестает понимать "* html" – вот и выравнивание по вертикали пропадает...
В четвертых:
[/quote]
Известный чем? Своей "корявостью"?
Есть гораздо более логичные и относительно безболезненные способы кроссбраузерного выравнивания по вертикали...
Только стили в отдельный внешний файл вынесите, чтобы валидатор не поперхнулся символом "<" в экспрешшене... И будет все валидно...