I am considering HTML for a mobile game, but I am concerned that performance will be lacking and CSS will be challenging.
I much prefer web development to native iOS development for many many reasons, and am 100% for building desktop games in HTML5, but the thing about mobile web apps is that you'll spend every waking minute focusing on performance; you'd better be comfortable with not using jQuery, and you'd better be ready to get intimately familiar with the intricacies of how WebKit renders the DOM so you can fine-tune by hand the way it applies hardware acceleration. If you're lucky, with tons of optimization you might get performance to a barely-acceptable level, and that's assuming your game's running in MobileSafari instead of a Nitro-less UIWebView. Things are only going to get better from here, but they've got a long way to go before I'll voluntarily write another web-based mobile game.
Also, if you're building a pure web app (as opposed to a native wrapper around a UIWebView), you functionally won't be able to have sound. I've heard that iOS6 is finally introducing a real web audio API, but the current version of iOS doesn't have a sane way to play audio in a way that's robust and full-featured enough for most games.
(And if you care about cross-platform support, don't get me started on the clusterfuck that is the Android browser. I'd honestly rather have to support IE 6/7/8 than the Android build of WebKit.)
Shameless self plug: If you're looking to build an iPhone game check out our website (https://www.makegameswith.us), you'll learn how to build Angry Birds in no time then get started making your own game!
HTML5 canvas is definitely a possibility though. Check out http://impactjs.com/
Its a great game engine which will allow you to create all manner of high-performance games on iphone4+ hardware (i've never tested on <iphone4, so performance may be ok there too)