#html #css #css-position #sticky
#HTML #css #css-position #залипание
Вопрос:
Я создаю простой шаблон администратора для приложения. У меня есть три основных контейнера: заголовок, навигация (левая боковая панель) и содержимое, которое находится справа.
У меня есть элемент adminWrapper, который расположен относительно и обертывает навигацию и adminContent. Этот элемент является родственным элементом заголовка,
Я просмотрел другие ответы Stack Overflow, проверил, что у родителей нет свойства overflow, проверил заголовок top: 0
. Я пытался не использовать display flex в заголовке (хотя это не должно быть проблемой)
Это основная разметка:
<header>
<button id="adminMenu" class="menu">
<span class="menuLine"></span>
<span class="menuLine"></span>
<span class="menuLine"></span>
</button>
<h1><a href="/admin">SLLS - Admin</a></h1>
<a href="">
{% include 'includes/userAccountIcon.html' %}
</a>
</header>
<div id="adminWrapper">
<nav>
<ul>
<li><a href="/">APP</a></li>
<li><a href="">CONTENT</a></li>
<li><a href="">MEMBERSHIP</a></li>
<li><a href="">CLAPHAM OMNIBUS</a></li>
<li><a href="">NEWS</a></li>
</ul>
</nav>
<div id="adminContent">
<div id="testContent">
<div>Grid-1</div>
<div>Grid-2</div>
<div>Grid-3</div>
<div>Grid-4</div>
<div>Grid-5</div>
<div>Grid-6</div>
<div>Grid-7</div>
<div>Grid-8</div>
<div>Grid-9</div>
</div>
</div>
</div>
//css:
#adminWrapper{
position: relative;
}
header{
background: var(--sllsRedBlueGradient);
display: flex;
padding: 1em;
justify-content: space-between;
align-items: center;
top: 0;
position: sticky;
z-index: 3;
}
nav{
background-color: var(--mainBlue);
padding: 2em 0;
transition: 0.3s ease;
z-index: 2;
top: 0;
position: absolute;
width: 0;
left: -500px;
}
#adminContent{
background-color: red;
padding: 2em;
top: 0;
width: 100%;
position: absolute;
transition: 0.3s ease;
}
Чтобы проверить это, я создал lorem3000, чтобы увидеть,
Привязка позиции ДЕЙСТВИТЕЛЬНО РАБОТАЕТ, но только на короткое время,
после того, как она пересекает определенный порог, она поднимается и исчезает и не залипает,
Я создал прозрачный фон над заголовком, чтобы увидеть, что происходит на самом деле,
Происходит то, что sticky работает только до тех пор, пока навигационная панель слева находится в пределах досягаемости, даже если она скрыта.
Как только прокрутка опускается ниже общей высоты навигации, привязка позиции перестает работать, теперь я пытаюсь понять, почему.
Когда я убираю #adminContent из div, он работает отлично, однако в скрипке он все равно работает независимо,
Комментарии:
1. Я не могу вам в этом помочь, но это поможет людям, если вы настроите пример на jsfiddle. net или другой скрипичный сайт, чтобы люди могли поиграть с вашим примером.
2. Похоже, здесь все работает нормально: jsfiddle.net/ac3honxz
3. Он работает на моем примере некоторое время, а затем перестает залипать, мне понравился lorem3000, для проверки, может ли это быть проблемой? Когда я пытаюсь это сделать, он залипает только на некоторое время, а затем отключается, я не могу понять, что может происходить
4. Я попробовал это здесь, и это тоже сработало, должно быть, здесь что-то еще не так: jsfiddle.net/y3q7efrz/3
5. Мне удалось диагностировать это сейчас, просто нужно найти лекарство, в основном sticky работает только до тех пор, пока прокрутка не опускается ниже общей высоты навигации, эта проблема возникает только в моих браузерах с localhost, я пробовал с jsfiddle, и это работает, так что я в замешательственевероятно