Unlike any other mobile web browsers, iPhone comes with Safari browser which makes it possible to view any website that works on Safari. However, the challenge is that the screen size of an iPhone is not as big as a traditional monitor and therefore, if you have got a website which has a width of say, 1000px, the website will appear really small and unreadable on an iPhone screen.
Screenshot of Web Development Blog on iPhone
Here are the steps to make a website iPhone-friendly using just CSS.
1. Create a separate stylesheet for iPhone
Tips:
1. Hide unnecessary elements
On this blog, I set the following elements to display: none
in CSS. Use display: none rather than visibility: hidden because visibility: hidden will also hide the content inside an element and not hide the element completely.
2. Use a fluid layout
Set the width of your main container (or any other containers) to 100% rather than a specific width in pixel.
For example:
body { background-color: #fff; } .header, .footer { width: 100%; } .sidebar { display: none; }
<link media="only screen and (max-device-width: 480px)" href="/iphone.css" type= "text/css" rel="stylesheet" />
The viewport of an iPhone is 320 pixels in portrait orientation and 480 pixels in landscape orientation.
2. Specify meta data for viewport
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
Here, I am not specifying any width because I am using a fluid layout. Setting the user-scalable property to 0 (false) ensures that the user isn't able to zoom in or out the website. Refer to Safari HTML Reference - Supported Meta Tags to see any other meta tags that you might want to use.
3. Create an icon
This is very much like a favicon that will be used when the user add your website to their home screen. Use the following code to specify a custom icon. The icon should be at least 57x57 pixel.
<link rel="apple-touch-icon" href="/iphone.png" />
An example of apple-touch-icon for Facebook
An example of apple-touch-icon for Web Development Blog
4. Putting it altogether
Add all of the above to the <head> section of your website.
<!-- Start iPhone --> <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /> <link rel="apple-touch-icon" href="/iphone.png" /> <link media="only screen and (max-device-width: 480px)" href="/iphone.css" type= "text/css" rel="stylesheet" /> <!-- End iPhone -->
For WordPress (template specific)
<!-- Start iPhone --> <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /> <link rel="apple-touch-icon" href="<?php echo bloginfo('template_url'); ?>/iphone.png" /> <link media="only screen and (max-device-width: 480px)" href="<?php echo bloginfo('template_url'); ?>/iphone.css" type= "text/css" rel="stylesheet" /> <!-- End iPhone -->
A few things to note
- The overflow CSS property does not work very well on iPhone. The scrollbars aren't displayed but you can use two fingers and scroll across the area.
- This solution does not make the website light-weight because all elements on your website are still loaded. However, it does look neater and cleaner because many elements are hidden via CSS using
display: none
. - The ideal solution is to develop a special version of the website for iPhone using mobile detection script and essentially reduces the bandwidth required to load the website on mobile devices.
- Have a look at a few websites that are optimisied for an iPhone for an inspiration. View this blog on an iPhone, check out iBloggr theme (WordPress iPhone Theme) or view demos of these mobile templates.
Recommended books
- Building iPhone Apps with HTML, CSS, and JavaScript: Making App Store Apps Without Objective-C or Cocoa
- Beginning Smartphone Web Development: Building Javascript, CSS, HTML and Ajax-Based Applications for iPhone, Android, Palm Pre, Blackberry, Windows Mobile and Nokia S60
- Developing Hybrid Applications for the iPhone: Using HTML, CSS, and JavaScript to Build Dynamic Apps for the iPhone
Want a quick and easy solution?
You might like to check out pre-made website designs that are mobile-friendly.
- Website designs for business
- Website designs for food
- Website designs for online courses
- Website designs for holiday rentals
- Website designs for jewelry
- Website designs for health and wellness
- Website designs for artists & musicians
- Website deigns for online stores
- Website designs for fitness
- Website designs for ecommerce and Internet
Thank you for this really helped me a lot. I have one question tho as I am nee to mobi sites. How would I go about setting up the domain for the site I would like to have it as mobile.site.com how would I set this up so that the mobile device picks it up? Your help would be greatly appreciate. Many thanks. Levon
Hi Levon,
If you want to redirect your visitors to a different address/domain based on what browsers they are using, you can use this mobile user agent detection script: http://detectmobilebrowsers.mobi/
To know more, read on:
http://website-engineering.blogspot.com/2009/07/stop-adjusting-text-size-in-iphone-when.html
This is a really useful post, but the key as always is planing your website. Hiding stuff may not be the best solution but it will be quicker. Its probably going to be easier to plan content structures for all media types from scratch. Well that rather than trying to create a stylesheet for an existing site on the basis that background image substitution would be one of the quicker ways to style using alternate stylesheets. Anyhow well done on the post mate.
“Unlike any other mobile web browsers, iPhone comes with Safari browser which makes it possible to view any website that works on Safari.”
Ever heard of Opera and Opera Mobile? :)
thank you for explaning to us how to make it website i phone friendly using css, it is really great idea, i would like to try it
Thanks! Awesome.
Hoping someone can help.
Need to hire a web developer with some experience or interest in iphone app development
need php or javascript and css, html, jsp experience along with some experience in screen design.
professional experience preferred or a passionate hobbyist is a possibility.
good salary and employee benefits
contact: steve rhoades, 610-687-7742 or email me: steve@wrplacement.com
thanks
WPtouch iPhone Theme is also a great way to make your WordPress wite mobile-friendly by creating a theme for iPhone and iPod Touch, the mobile version of the site also works on Android. :)
.-= Icechen1´s last blog ..Google adds free phone calling in Gmail- Skype competitor =-.
Hello. Helpful tips! Thanks a lot. I have a problem, however. I am developing a site that is to be viewed on different devices and browsers. It’s set to use a different (CSS) style sheet for each (phone, iPad and Internet Explorer for example). The problem I have is that an iPod Touch is using my iPad CSS to display the information (I tried directing iPod Touch users to their own CSS but it wouldn’t work). SO! How can I add styles to my iPad particular style sheet so that iPod Touch/iPhone users will have it display correctly? Really, my only problem is that the text it too large.
I tried adding:
@media screen and (max-device-width: 480px){
/* All iPhone only CSS goes here */
to the file, but it doesn’t work. Perhaps it’s formatted badly or simply not able to work in conjunction with a style sheet made for the iPad.
I’m fairly new to CSS to pardon me if my questions were already answered or are hard to follow :p