Fixed Position Bug on iOS
The fixed
value for the position
property has a very noticeable glitch in
iOS9 and perhaps many other versions. When scrolling vertically the
fixed
elements can take a different position than intended. A fixed header
could settle 5 to 10 pixels from the top, or a footer might get cut off.
We can fix it by establishing the height and width of the body
and
html
and setting the overflow
to auto and
webkit-overflow-scrolling
to touch.
Fix:
body,
html {
height: 100vh;
overflow: auto;
-webkit-overflow-scrolling: touch;
width: 100vw;
}
This prevents the browser's menubar from retracting which allows for the fixed elements to take their intended position. It does improve the scrolling experience, but it also leaves us with an omnipresent menubar.