--- title: List with floating section headings tags: visual,advanced --- Creates a list with floating headings for each section. - Use `overflow-y: auto` to allow the list container to overflow vertically. - Use `display: grid` on the inner container (`dl`) to create a layout with two columns. - Set headings (`dt`) to `grid-column: 1` and content (`dd`) to `grid-column: 2` - Finally, apply `position: sticky` and `top: 0.5rem` to headings to create a floating effect. ```html
A
Algeria
Angola
B
Benin
Botswana
Burkina Faso
Burundi
C
Cabo Verde
Cameroon
Central African Republic
Chad
Comoros
Congo, Democratic Republic of the
Congo, Republic of the
Cote d'Ivoire
D
Djibouti
E
Egypt
Equatorial Guinea
Eritrea
Eswatini (formerly Swaziland)
Ethiopia
``` ```css .container { display: grid; place-items: center; min-height: 400px; } .floating-stack { background: #455A64; color: #fff; height: 80vh; height: 320px; border-radius: 1rem; overflow-y: auto; } .floating-stack > dl { margin: 0 0 1rem; display: grid; grid-template-columns: 2.5rem 1fr; align-items: center; } .floating-stack dt { position: sticky; top: 0.5rem; left: 0.5rem; font-weight: bold; background: #263238; color: #cfd8dc; height: 2rem; width: 2rem; border-radius: 50%; padding: 0.25rem 1rem; grid-column: 1; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; } .floating-stack dd { grid-column: 2; margin: 0; padding: 0.75rem; } .floating-stack > dl:first-of-type > dd:first-of-type { margin-top: 0.25rem; } ```