Div нижняя панель инструментов появляется на iPhone, но не на Android
Я делаю веб-приложение, которое адаптировано для мобильных устройств. У меня есть панель инструментов, которая расположена на правой стороне экрана в браузере моего компьютера, и она должна быть зафиксирована в нижней части экрана на мобильном телефоне. Странно то, что при открытии с помощью iPhone панель инструментов выглядит правильно зафиксированной внизу, но когда я открываю приложение на устройстве Android, например на моем Samsung Galaxy S5, панель инструментов вообще не появляется. Во время некоторого тестирования, когда я изменил свой стиль на относительный, а не фиксированный, панель инструментов отображается в одной и той же позиции в середине экрана на iPhone и Android. Как вы думаете, проблема может быть?
Вот код:
<div class="col-sm-2">
<div class="sidebar-nav-right">
<div class="navbar navbar-default navbar-style" role="navigation">
<div class="nav">';
<a class="brand font-26 block brand-color">Tools</a>
<ul class="nav navbar-nav center">
<li><a data-toggle="modal" data-target="#newgroup-modal" class = "font-16">Create Group</a></li>
<li><a href="javascript:;" class = "font-16">Item 2</a></li>
<li><a href="javascript:;" class = "font-16">Item 3</a></li>
</ul>
</div>
</div>
</div>
</div>
.sidebar-nav-right{
width: 100%;
position: fixed;
bottom: 0px;
border-top: 1px solid black;
}
Этот стиль находится внутри медиа-запроса для экранов меньшего размера и, как указано выше, адаптируется на мобильном устройстве одного бренда, поэтому я знаю, что с медиа-запросом проблем нет.
3 ответа
Если add {left: 0} не может решить эту проблему, я думаю, что родительский узел.sidebar-nav-right имеет преобразование; тогда исходное положение было сброшено.
Это распространенная проблема в старых браузерах Android. Просто добавь -webkit-backface-visibility: hidden;
к фиксированному элементу.
Есть два способа это исправить. В этой статье Брэда Фроста приведен список решений Javascript: http://bradfrost.com/blog/mobile/fixed-position/
Или попробуйте упомянутое выше исправление Бена Фрейна: https://benfrain.com/easy-css-fix-fixed-positioning-android-2-2-2-3/
Смотрите также этот CodePen от Ben Frain: http://codepen.io/benfrain/full/wckpb
Я думаю, что комментарий @GoreWang точный. Вы должны попробовать следующие 2 вещи:
(1) При фиксированной позиции, иногда не имея установленного свойства left, фиксированный элемент не появляется при загрузке страницы. Попробуйте добавить следующее:
.sidebar-nav-right {
left: 0;
}
(2) Добавьте следующий код к вашему фиксированному элементу:
.sidebar-nav-right {
transform: translateZ(0);
-webkit-transform: translateZ(0);
}
Это заставляет Chrome использовать аппаратное ускорение, чтобы непрерывно рисовать фиксированный элемент и избегать этого странного поведения.(Известная ошибка)