You are forgetting the meta viewport tag:
<meta name="viewport" content="initial-scale=1">
The meta viewport tag allows you to tell the mobile browser what size the virtual viewport should be. Without this, your website will be rendered into the mobile device's default virtual viewport, thus acting the way it is now.