У меня есть следующий макет:
html {
scroll-behavior:smooth;
}
header {
height: 234px;
position: sticky;
top: 0;
padding: 24px;
background-color: rgba(255,255,255,0.5);
border-bottom: 1px solid #dedede;
}
nav {
height: 88px;
position: sticky;
top: 234px;
padding: 24px;
background: #f5f5f5;
}
section {
height: 100vh;
text-align: center;
}
<header>
<p>I'm the header</p>
</header>
<section>
<p>I'm a video</p>
</section>
<nav>
<a href="#1">Section 1</a>
<a href="#2">Section 2</a>
<a href="#3">Section 3</a>
</nav>
<section id="1">
<p>I'm section 1</p>
</section>
<section id="2">
<p>I'm section 2</p>
</section>
<section id="3">
<p>I'm section 3</p>
</section>
Как видите, у меня есть главный заголовок вверху страницы с position: sticky;
. Затем у меня есть <nav>
дальше вниз по странице, которая находится под основным заголовком. Затем можно щелкнуть ссылки для прокрутки к каждой <section>
.
При нажатии на каждую ссылку в <nav>
каждая <section>
прокручивается до самой верхней части страницы.
Is Есть ли способ сместить верхнюю позицию? В этом случае мне потребуется смещение от вершины на 322 пикселя (<header>
и <nav>
высоты вместе).
Я попытался добавить псевдоэлемент :before
к каждому <section>
с помощью высота 322 пикселя, но это не работает.