I believe that what you are seeing is (at least from the screenshots) iOS's Safari auto-zoom feature on input boxes. This "phenomenon" automatically centers/focuses an input box when it gains input focus.
This <meta />
tag helps prevent that:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
What this <meta />
tag above accomplishes is:
- Rendering the page at the device's screen width;
- Setting the zoom level at
1:1
;
- And fixing the maximum scale to be
1
(essentially unscalable).
If your page is definite optimized for mobile devices, then the above solution should work just fine.
Alternatively, in case you'd like to have control over which <input />
control this happens to, use:
<meta name="viewport" content="width=device-width" />
and then, set each <input />
's font-size
style to at least 16 pixels.
<input type="text" style="font-size: 16px;" />
This more compact <meta />
tag simply says that the page should be initially presented at a 1:1
scale.
Here's a test page (shortened: http://bit.ly/15GbxJa) that will demonstrate what you (hopefully) want to fix. This test page is using the second (alternate) method for more fine-grained control; you can take a look at the source code for reference.
Initial page display:

With and without auto-zoom respectively:
