Я использую макет CSS-сетки и с некоторой помощью мне удалось «исправить» и заголовок, и левую боковую панель, используя position: sticky.Тем не менее, я хотел бы знать, есть ли способ сохранить разрыв сетки (верхнее поле) боковой панели таким образом, чтобы он не касался заголовка.
Вот ссылка на мой CodePen: https://codepen.io/fergos2/pen/MWgLqgL?editors=1100
Тот же код можно найти ниже без губ.
Заранее благодарим за помощь этому новичку!
.container {
width: 100%;
margin: 0 auto;
background-color: #eee;
display: grid;
grid-template-rows: min-content 1fr;
grid-template-columns: 1fr 2fr 1fr;
grid-gap: 15px;
grid-template-areas: "head head head"
"leftbar main rightbar";
& > * {
background-color: pink;
color: #ggg;
font-size: 20px;
font-family: sans-serif;
}
}
.pd {
padding: 15px;
}
.header {
grid-area: head;
position: -webkit-sticky;
position: sticky;
top: 0;
z-index: 10;
}
.left-sidebar {
grid-area: leftbar;
display: flex;
flex-direction: column;
justify-content: flex-start;
.left-inner {
position: -webkit-sticky;
position: sticky;
top: 60px;
}
.box-1 {
color: red;
border: 1px solid purple;
margin-bottom: 5px;
}
.footer {
color: green;
border: 1px solid purple;
}
}
.main-content {
grid-area: main;
}
.right-sidebar {
grid-area: rightbar;
display: flex;
flex-direction: column;
justify-content: flex-start;
.box-2 {
color: red;
border: 1px solid purple;
margin-bottom: 5px;
}
.box-3 {
color: green;
border: 1px solid purple;
}
}
<div class="container">
<header class="header pd">Header</header>
<div class="left-sidebar pd">
<div class="left-inner">
<div class="box-1 pd">
Box-1
</div>
<footer class="footer pd">
Footer
</footer>
</div>
</div>
<div class="main-content pd">
Main content
</div>
<div class="right-sidebar pd">
<div class="box-2 pd">
Box-2
</div>
<div class="box-3 pd">
Box-3
</div>
</div>
</div>