У меня есть div position: fixed
в макете, как боковая панель. Мне было предложено, чтобы часть его содержимого оставалась фиксированной до вершины (внутренне), а остальное прокручивалось, если оно переполняет нижнюю часть div.
Я посмотрел этот ответ, однако представленное там решение не работает с контейнерами position: fixed
или position: absolute
, что является болью.
Я сделал демонстрацию JSFiddle моей проблемы здесь. Большой объем текста должен идеально прокручиваться, а не переполняться в нижней части страницы. Высота заголовка может варьироваться в зависимости от содержимого и может быть анимирована.
Пример кода JSFiddle:
CSS
div.sidebar {
padding: 10px;
border: 1px solid #ccc;
background: #fff;
position: fixed;
top: 10px;
left: 10px;
bottom: 10px;
width: 280px;
}
div#fixed {
background: #76a7dc;
padding-bottom: 10px;
color: #fff;
}
div#scrollable {
overlow-y: scroll;
}
HTML:
<div class="sidebar">
<div id="fixed">
Fixed content here, can be of varying height using jQuery $.animate()
</div>
<div id="scrollable">
Potentially long content
</div>
</div>
Без фиксированного заголовка я могу просто добавить overflow-y: scroll
в div.sidebar
, и я могу с удовольствием прокрутить все содержимое, если оно переполнило нижнюю часть контейнера. Тем не менее, у меня возникают проблемы с наличием фиксированного заголовка переменной высоты в верхней части боковой панели и наличия любого содержимого под этим прокруткой, если он слишком длинный, чтобы вписаться в контейнер.
div.sidebar
должен оставаться position: fixed
, и я бы очень хотел сделать это без каких-либо взломов, а также сделать его как можно более удобным. Я пытался делать разные вещи, но никто из них не работает, и я не уверен, что отсюда.
Как я могу сделать div внутри контейнера position: fixed
прокручивать только в направлении Y, когда содержимое переполняет содержащий div, с фиксированным заголовком переменной неопределенной высоты? Я очень хотел бы держаться подальше от JS, но если мне придется его использовать, я буду.