CSS position: fixed
не работает правильно в мобильных браузерах. Мой опыт работы с браузерами для Android и iOS, и ни один из них не подразумевает position: fixed
должным образом (за исключением браузера iOS 5, но он все еще находится в бета-версии).
Вместо того, чтобы прикреплять элемент к экрану и не перемещать его, когда пользователь выполняет прокрутку в мобильных браузерах, он обычно обрабатывается как position: absolute
и перемещается при прокрутке страницы.
Также использование свойства CSS overflow
не позволяет прокручивать на большинстве мобильных устройств (iOS поддерживает его, но пользователь должен знать, что нужно использовать два пальца при прокрутке в scrollable-div).
Однако вы можете использовать CSS, но помните, что вам нужно будет использовать position: absolute
или вы можете использовать JavaScript для установки высоты элементов.
Вот решение jQuery Mobile, использующее JavaScript для установки высоты элементов псевдостраницы:
$(document).delegate('#page_name', 'pageshow', function () {
var the_height = ($(window).height() - $(this).find('[data-role="header"]').height() - $(this).find('[data-role="footer"]').height());
$(this).height($(window).height()).find('[data-role="content"]').height(the_height);
});
Чтобы получить безупречный результат, вам нужно принять во внимание поведение адресной строки целевого устройства, потому что если вы хотите полноэкранную веб-страницу, то вам нужно добавить высоту адресной строки к высоте страницы.