The phone provides a 'larger' viewport, than its screen really is.
Add the viewport-metadata to head and it should work:
<head> ....
<meta name="viewport" content="width=device-width">
...
</head>
An example for a visual understanding:

Or as playalong code:
<html>
<head>
<title>Viewport on Smartphone and Desktop</title>
<!-- without width = device width smartphones show full page but small as in overview zoom -->
<!-- disable this automatic scaling -->
<meta name="viewport" content="width=device-width">
</head>
<body>
<style>
html, body {
margin: 0;
padding: 0;
background-color: #EDECEC;
}
p {
padding: 30px 0;
margin: 30px 0;
text-align: center;
font-family: sans-serif;
font-size: 300%;
}
.ausgabe{
font-size: 150%;
}
.pixel {
width: 320px;
background-color: #6B5B69;
color: #fff;
}
.prozent {
width: 100%;
background-color: #D06836;
color: #F8F8F8;
}
</style>
<p class="pixel">320px</p>
<p class="prozent">100%</p>
<p class="ausgabe"></p>
<script>
var metaList = document.getElementsByTagName( 'meta' ),
metaFlag = false,
devWidth = window.screen.width,
browserWidth = document.documentElement.clientWidth;
if ( metaList.length > 0 && metaList[0].name == 'viewport' && metaList[0].content == 'width=device-width' ) {
metaFlag = true;
}
document.getElementsByClassName( 'ausgabe' )[0].innerHTML = 'width=device-width: ' + metaFlag + '<br/>' +
'Device Width: ' + devWidth + '<br/>' + 'Browser Width: ' + browserWidth;
</script>
</body>
</html>