<section style="overflow: auto;">
<p class="center">Scroll this section area to see the sticky headings in action</p>
<article>
<h2 class="sticky-heading">Heading 1</h2>
<div class="content">
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non,
aut dolor cupiditate repudiandae vel pariatur, nemo velit corrupti
eaque reiciendis excepturi, minima ipsa! A nobis.
</p>
<p>
Ipsum alias ipsa sed doloribus corporis ab pariatur saepe, optio
neque fugit est id voluptas quam ullam qui inventore maiores omnis
nihil esse labore explicabo nobis ipsam! Vero.
</p>
</div>
</article>
<article>
<h2 class="sticky-heading">Heading 2</h2>
<div class="content">
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non,
aut dolor cupiditate repudiandae vel pariatur, nemo velit corrupti
eaque reiciendis excepturi, minima ipsa! A nobis.
</p>
<p>
Ipsum alias ipsa sed doloribus corporis ab pariatur saepe, optio
neque fugit est id voluptas quam ullam qui inventore maiores omnis
nihil esse labore explicabo nobis ipsam! Vero.
</p>
</div>
</article>
<article>
<h2 class="sticky-heading">Heading 3</h2>
<div class="content">
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non,
aut dolor cupiditate repudiandae vel pariatur, nemo velit corrupti
eaque reiciendis excepturi, minima ipsa! A nobis.
</p>
<p>
Ipsum alias ipsa sed doloribus corporis ab pariatur saepe, optio
neque fugit est id voluptas quam ullam qui inventore maiores omnis
nihil esse labore explicabo nobis ipsam! Vero.
</p>
</div>
</article>
<article>
<h2 class="sticky-heading">Heading 4</h2>
<div class="content">
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non,
aut dolor cupiditate repudiandae vel pariatur, nemo velit corrupti
eaque reiciendis excepturi, minima ipsa! A nobis.
</p>
<p>
Ipsum alias ipsa sed doloribus corporis ab pariatur saepe, optio
neque fugit est id voluptas quam ullam qui inventore maiores omnis
nihil esse labore explicabo nobis ipsam! Vero.
</p>
</div>
</article>
<article>
<h2 class="sticky-heading">Heading 5</h2>
<div class="content">
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non,
aut dolor cupiditate repudiandae vel pariatur, nemo velit corrupti
eaque reiciendis excepturi, minima ipsa! A nobis.
</p>
<p>
Ipsum alias ipsa sed doloribus corporis ab pariatur saepe, optio
neque fugit est id voluptas quam ullam qui inventore maiores omnis
nihil esse labore explicabo nobis ipsam! Vero.
</p>
</div>
</article>
</section>
.sticky-heading {
position: sticky;
top: 0;
}
article {
align-items: start;
padding: 0.6rem;
}
/* Base Styles */
* {
box-sizing: border-box;
padding: 0;
margin: 0;
}
body {
font-family: Arial, sans-serif;
color: #333;
}
section {
overflow: auto;
max-width: 60ch;
margin: 3rem 1rem 100vh;
border: 2px solid;
height: 200px;
}
h2 {
font-size: 20px;
background-color: #fff;
padding: 0.5rem 0;
}
p {
margin-bottom: 16px;
line-height: 1.6;
font-size: 15.4px;
font-weight: 400;
}
.content p:last-child {
margin-bottom: 0;
}
.center {
text-align: center;
}
@media screen and (min-width: 480px) {
article {
display: grid;
column-gap: 2rem;
grid-template-columns: 150px 1fr;
}
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.