Как расположить div в нижней части окна просмотра в стандартном и в странном режиме? - PullRequest
1 голос
/ 31 мая 2010

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

Спасибо заранее Гонсало

1 Ответ

0 голосов
/ 01 июня 2010

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

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

...