views:

392

answers:

1

Hello,

I'm having trouble getting my mobile web app to render properly on my iPhone 4. According to Wikipedia, the iPhone 4 has 960 width x 680 height pixels and the other iPhones have something like 480 width x 340 pixels.

With my current build, the images and CSS styling look really tiny on the iPhone 4.

Here is my code:

<!DOCTYPE html>
<html>
<head>
    <title>mobile</title>
    <link rel="stylesheet" type="text/css" href="iphone.css" media="only screen and (max-width: 480px)" />
     <link rel='stylesheet' href='highRes.css' media='only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)' />
    <!--[if IE]>
    <link rel="stylesheet" type="text/css" href="explorer.css" media="all" />
    <![endif]-->
</head>
<body>
    <div class="nav">
        <div id="threeButtons">
            <div class="navButton" id="friends">
                Friends
            </div>
            <div class="navButton" id="nearby">
                Nearby
            </div>
            <div class="navButton" id="me">
                Me
            </div>
        </div>
        <div id="settingsButton">
        </div>
    </div>
</body>
 </html>

And here is my CSS:

body {
background-color: #ddd; /* Background color */
color: #222;            /* Foreground color used for text */
font-family: "Lucida Grand"; 
font-size: 14px;
margin: 0;              /* Amount of negative space around the outside of the body */
padding: 0;             /* Amount of negative space around the inside of the body */
display: block;

}

div.nav {
    text-shadow: 0px 1px 0px #fff;
    background-image: -webkit-gradient(linear, left top, left bottom, 
                                       from(#e1f7ff), to(#a1d2ed));
    height: 50px;
}

    #threeButtons {
        float: left;
        margin-left: 20px;
        margin-top: 10px;
        margin-bottom: 5px;
    }
        div.navButton {
            float: left;
            height: 30px;
            font-weight: bold;
            text-align: center;
            color: white;
            text-shadow: rgba(0,0,0,0.6) 0px -1px 0px;
            line-height: 28px;
            border-width: 0 8px 0 8px;
            -webkit-border-image: url(images/button.png) 0 8 0 8;

        }

    #settingsButton {
        float: left;
        background-image: url('images/settings.png');
        height: 30px;
        width: 29px;
        margin: 10px 0 5px 60px;
    }

Does anyone have an explanation on how to build for the iphone 4? Should I use these media parameters to reference the CSS:

<link rel="stylesheet" type="text/css" href="iphone.css" media="only screen and (max-width: 480px)" />
     <link rel='stylesheet' href='highRes.css' media='only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)' />

or should I hardcode the body pixel width in the CSS?

I just checked out this article: http://menacingcloud.com/?c=highPixelDensityDisplays

but I want to hear what other people have done.

+1  A: 

Try this <meta> tag

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">
Marko