#css #firefox #joomla #mobile-safari
Вопрос:
У меня есть мобильное меню, которое должно исчезать при прокрутке пользователями. Я действительно хорошо поработал, но теперь у меня есть проблема, которая поражает меня. Я использую headroom.js чтобы меню исчезало и появлялось снова. Для элемента headroom я определил несколько классов css. Все это встроено в шаблон Joomla.
Теперь, в мобильном браузере Firefox, а также в Safari (браузере iPhone), я получаю это странное поведение, когда классы заголовков растягиваются до ширины 1500 пикселей, значение, которое нигде не определено в моих css-файлах. Когда я позволяю Chrome имитировать мобильный видовой экран, все работает так, как должно.
Мой html:
…
<header class="headroom" id="main-header-navi-headroom">
<nav id="nav-main" class="navbar navbar-default" style=" background-color: #fff;">
<div class="navbar-header">
<!-- a button to toggle navbar-collapse goes here -->
</div>
<div class="collapse navbar-collapse" id="collapsible-menu">
<!-- all my menu points are being summoned here -->
</div>
</nav>
</header>
…
Мой шаблон.css
.headroom {
position: sticky;
top: 50px;
left: 0;
right: 0;
transition: all .6s ease-in-out !important;
z-index: 900;
}
.headroom--unpinned {top: -150px;}
.headroom--pinned {top: 50px;}
Мой template_responsive.css:
@media (max-width: 1179px) {
.headroom {
position: fixed;
top: 50px;
left: 0;
right: 0;
margin-top: 0;
max-height: calc(var(--vh, 1vh) * 100);
overflow-y: auto;
-webkit-transition: -webkit-transform 300ms ease-out;
transition: -webkit-transform 300ms ease-out;
-o-transition: -o-transform 300ms ease-out;
transition: transform 300ms ease-out;
transition: transform 300ms ease-out, -webkit-transform 300ms ease-out, -o-transform 300ms ease-out;
will-change: transform;
z-index: 9998;
}
.headroom--pinned {
top: 50px;
position: sticky;
}
.headroom--frozen {
top: 0 !important;
}
a.reduced-z {
z-index: 9997 !important;
}
.headroom--unpinned {
-webkit-transform: translateY(-100%);
-o-transform: translateY(-100%);
transform: translateY(-100%);
top: 0;
}
}
What I’ve tried: I tried to add a max-width: 100%;
property to the headroom
class, to no avail. Also, in my template there is another <nav>
element that has max-width
set to 100%, but it gets still rendered to a width of 1500 pixels.
What confuses me are two things:
- Во всем моем css нет класса или идентификатора, ширина которых была бы установлена на 1500px. Сначала я подумал, что, возможно, эта опора каким-то образом просочилась в мой элемент меню. Но так как их нет, я не понимаю, как Firefox придумывает такую ширину.
- Если я просто масштабирую обычное окно Firefox на своем настольном компьютере, все работает нормально. Просто предварительный просмотр мобильного устройства или реальное мобильное устройство вызывают описанные проблемы.
Есть какие-нибудь идеи о том, почему возникает эта проблема и как ее устранить?