Instead of using a br and clear float, you can try applying 'overflow: hidden' to your #container div. That is an alternate (and cleaner) way to clear the floated elements. I am not sure why the page wouldn't work well on an iPhone. You can test using safari or chrome since they both run webkit just like the iPhone, and see if that reveals anything.