Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mysterious White Space at bottom of Web Page in Mobile-Chrome

I've looked at many "mysterious white-space at bottom of page" issues here on SO, and played with the viewporttag many times, but I still cannot figure out what I'm doing wrong!

The page in question is: http://www.seniorchoicesunl.com/error_documents/error401.php

Here's what it looks like on mobile from Chrome Dev Tools:enter image description here

Any Ideas on what I'm doing wrong?

Edit:

setting ANY initial-scale is bad news! It makes the font too tiny! Take a look: enter image description here

The desired mobile look, while keeping the desktop and tablets as-is, is this:

enter image description here

P.S. Fixing this issue could reciprocally fix other related issues I'm having with other webpages.

like image 587
James Anderson Jr. Avatar asked Aug 22 '16 00:08

James Anderson Jr.


2 Answers

What's going on here:

  • You've set width=device-width, this makes the layout size on your page equal to the device's screen width. i.e. making an element 100% will give it the same width as the screen.
  • Chrome infers the layout height using the width and screen's aspect ratio. i.e. height=width/aspectRatio
  • The sub_container_div element actually ends up being much wider than the layout width of the page. In my case on a Nexus 6, the device-width is 412px while the sub_container_div is 594px wide.
  • Since the content is wider than device-width, Chrome allows zooming out and loads the page at the minimum zoom level but this doesn't change the layout width/height so height 100% only fills device-width/aspect ratio pixels, which doesn't fill the zoomed out viewport.

The correct way to fix this is to make sure all your content is contained by the layout size. In your case, the reason the sub_container_div is wider than the layout size is that your padding/margins cause it to expand outside the parent. The solution is to add box-sizing: border-box to the sub_container_div and dialog elements and width: 100% to sub_container_div. That way, Chrome can't zoom out and you can't see outside the layout box (in HTML spec language, that's the initial containing block).

like image 63
David Bokan Avatar answered Sep 28 '22 07:09

David Bokan


Add this on top of your css file :)

html,body {
    width: 100%;
    height: 100%;
    margin: 0px;
    padding: 0px;
    overflow-x: hidden;
}

it fixed the bug for me.

like image 25
Masoud Avatar answered Sep 28 '22 08:09

Masoud