fix(layout): фиксированная высота sidebar и rightbar без скролла страницы

- Sidebar и rightbar теперь sticky с фиксированной высотой
- Высота = 100vh - navbar - 2*layout-padding-y (12px сверху + 12px снизу)
- top = navbar + layout-padding-y
- Элементы не перемещаются с основным скроллом страницы
- Имеют собственный внутренний скролл при переполнении
- Размер определяется как высота страницы минус navbar минус 2 отступа
This commit is contained in:
admin i 2025-11-29 15:42:12 +03:00
parent c9fa337669
commit 465ecd3074
2 changed files with 12 additions and 4 deletions

View File

@ -47,11 +47,15 @@
padding: var(--space-2);
}
/* На десктопе rightbar становится sticky с фиксированной высотой
Высота = 100vh - navbar - 2*отступ (сверху и снизу)
top = navbar + отступ сверху
Не перемещается с основным скролом страницы, скролл только внутри .card-body */
@media (min-width: 992px){
.rightbar{
position: sticky;
top: var(--navbar-h);
height: calc(100dvh - var(--navbar-h));
top: calc(var(--navbar-h) + var(--layout-padding-y, 12px));
height: calc(100dvh - var(--navbar-h) - 2 * var(--layout-padding-y, 12px));
overflow: hidden;
/* padding управляется через Bootstrap классы в шаблоне (px-0, py-3 и т.д.) */
}

View File

@ -17,11 +17,15 @@
background: var(--bs-body-bg);
}
/* На десктопе sidebar становится sticky с фиксированной высотой
Высота = 100vh - navbar - 2*отступ (сверху и снизу)
top = navbar + отступ сверху
Не перемещается с основным скролом страницы, имеет свой внутренний скролл */
@media (min-width: 992px) {
#sidebar.offcanvas-lg {
position: sticky;
top: var(--navbar-h, 60px);
height: calc(100dvh - var(--navbar-h, 60px));
top: calc(var(--navbar-h, 60px) + var(--layout-padding-y, 12px));
height: calc(100dvh - var(--navbar-h, 60px) - 2 * var(--layout-padding-y, 12px));
align-self: start;
overflow: auto;
border-right: .5px solid var(--bs-border-color);