I have a website here.
Viewed in a desktop browser, the black menu bar properly extends only to edge of the window, since the body
has overflow-x:hidden
.
In any mobile browser, whether Android or iOS, the black menu bar displays its full width, which brings whitespace on the right of the page. As far as I can tell, this whitespace isn't even a part of the html
or body
tags.
Even if I set the viewport to a specific width in the <head>
:
<meta name="viewport" content="width=1100, initial-scale=1">
The site expands to the 1100px but still has the whitespace beyond the 1100.
What am I missing? How do I keep the viewport to 1100 and cut off the overflow?
As @Indigenuity states, this appears to be caused by browsers parsing the
<meta name="viewport">
tag.To solve this problem at the source, try the following:
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
.In my tests this prevents the user from zooming out to view the overflowed content, and as a result prevents panning/scrolling to it as well.
try
instead of just
I encountered the same problem with Android devices but not iOS devices. Managed to resolve by specifying position:relative in the outer div of the absolutely positioned elements (with overflow:hidden for outer div)
works on iOS9
Creating a site wrapper div inside the
body
and applying theoverflow-x:hidden
to the wrapper INSTEAD of thebody
orhtml
fixed the issue.It appears that browsers that parse the
<meta name="viewport">
tag simply ignoreoverflow
attributes on thehtml
andbody
tags.No previous single solution worked for me, I had to mix them and got the issue fixed also on older devices (iphone 3).
First, I had to wrap the html content into an outer div:
Then I had to apply overflow hidden to the wrapper, because overflow-x was not working:
and this fixed the issue.