Как разместить div в нижней части окна просмотра в стандартном режиме и в режиме причуд?

Мне нужно разместить div в нижней части окна просмотра. Я начинаю использовать position: fixed; внизу: 0px; и это прекрасно работает. Но то, над чем я работаю, вводится через javascript на разных страницах. И некоторые страницы не имеют определенного типа документа, поэтому в IE отображается как режим quircks, поэтому div не позиционируется правильно ..
Я попытался разместить div с помощью javascript (document.documentElement .clientHeight), и это отлично работает. Но когда тип документа не определен, «document.documentElement.clientHeight» равен 0, так что снова div не позиционируется правильно. Есть идеи, как решить эту проблему? Меня интересуют только IE 7 и 8.

Заранее спасибо Гонсало


person Gonzalo    schedule 31.05.2010    source источник
comment
Мне кажется, что самое простое решение - убедиться, что все ваши страницы имеют тип документа. это также позволит избежать других потенциальных проблем.   -  person Patricia    schedule 31.05.2010
comment
AFAIK, вы не можете динамически добавлять объявление Doctype VIA javascript ... объект документа владеет узлом HTML, поэтому, если вы создали doctype, вы бы добавили его в документ. Однако вы не можете создать Doctype afaik ... Обратите внимание, что Doctype не является элементом, это инструкция для браузера.   -  person Warty    schedule 31.05.2010


Ответы (1)


Хотя я согласен с комментариями, в которых говорится, что вам лучше убедиться, что каждая страница обслуживается с (действительным) типом документа, который запускает стандартный режим (и вы не можете изменить это или режим рендеринга на лету), вы можете проверить, действительно ли вы находитесь в стандартном режиме или в режиме совместимости с использованием document.compatMode . Это свойство возвращает либо CSS1Compat при использовании первого, либо BackCompat при использовании второго.

В стандартном режиме вы можете просто использовать <div> с position: fixed и bottom: 0 (в IE 7 и 8). При использовании режима причуд вам придется использовать <div> с абсолютно позиционированием над абсолютно позиционированным окном просмотра <div> (где <body> и <html> имеют height 100%). Я слишком устал, чтобы писать полный пример, но вы можете посмотреть этот ответ, чтобы узнать, как это можно сделать. Обратите внимание, что в режиме совместимости IE document.body.clientHeight возвращает высоту области просмотра (также см. Определение размера окно браузера).

person Marcel Korpel    schedule 31.05.2010