I have a website that is exhibiting bizarre behavior that I don’t understand. I’m unable to tell if I’ve run into a bug or what I might be doing wrong.
The page has two elements, nav
and main
that each have overflow-y: scroll
set. This is so they can be scrolled independently of one another. If I scroll the main
element, and then hover over the pagination buttons at the bottom, the main
element will jump back to the top (lose its scroll position). It also happens if I hover over the Octocat/GitHub symbol in the navigation on the right.
The common thread here is that the pagination buttons and the GitHub symbol on the right both have svg
elements. If I get rid of the svg
element the bug doesn’t happen. Also if I remove overflow-y: scroll
from the main
element the bug does not occur.
I’ve also noticed that the issue might be somehow related to having height: 100%
set on the <html>
tag. When it’s removed the issue no longer occurs, but unfortunately it can’t be removed otherwise the full width/height layout doesn’t work correctly.
Can anyone tell me why this is happening, if it’s a bug in Safari, and/or how to fix it? Thanks!
After spending hours and hours on this, the only way I could figure out how to fix it was to switch from CSS grid to flexbox. 🤷🏼♂️
This is the diff that fixed it, if you’re curious.