This is to preface why I ended up in possession of a copy of Andy Harris' HTML5 For Dummies Quick Reference. Over the years, I've found the “For Dummies” books a good place to start on something that I either didn't know about, or needed a refresher on. They are a mixed bag, however, with some being excellent, and some being notably awful. This, while being a “quick reference” (there are numerous code examples throughout the book and executed on the author's web site), and not intended to be a “course”, was quite informative and encompassing of the subject – if being a bit of a mass of info to try to take in all at once as a “read”. Oh, and just in case there are total code newbs reading this, HTML is Hyper Text Markup Language, and CSS is Cascading Style Sheets … I know my wife would be hard pressed to break those out, so I figure the might be a few who were similarly unfamiliar with the abbreviations that had still read this far down!
One thing that really surprised me in getting into HTML5 is that we're back to browser-specific code. “Back in the day” one pretty much had to write two web sites, one for Netscape, one for MSIE, and set up a “sniffer” on your index page that would send the right browser to the right code. For the past decade, this hasn't been so much of a problem … well, here we are again when it comes to HTML5. There are lots of the new fancy stuff that will require “stacking” up code to specify the functions for the various browser engines, of which there are four main ones: WebKit – Chrome/Safari, Gecko – FireFox/Mozilla, Trident – MSIE, and Presto – Opera. Between these there is a maddening mix of implementations, as one can see by the charts on this page (that Harris points his readers to).
Anyway, that being noted, let's look at the book. The first couple of chapters put HTML5 in context of the development of mark-up languages, and go over the HTML basics. It then looks at “New or Changed HTML5 Elements”, including Semantic Page Elements, Inline Semantic Elements, Media Elements, and Ruby Elements. Next is “New and Modified Form Elements” broken down into New Form Elements, New Form Element Attributes, and New Form Input Types. While these might not sound particularly exciting, there are all sorts of handy new things in there. The book then moves to an overview of using CSS and some of the basics (useful to me, since most of my coding has been pre-CSS!), before moving to “New and Improved CSS Elements” with CSS3's New Selection Tools, Downloadable Fonts {finally!} and Text Support, Flexible Box Layout Model {“I will try to not write tables, I will try to not write tables, I will try to not write tables ...”}, and New Visual Elements {Gradients! Rounded Corners! Shadows! Reflections! Transparency! Whooo....}. The penultimate chapter, “Changes in JavaScript” is a bit technical, but updates on some of the new things available for interfacing web sites with servers, etc. - a lot of this was a bit “over my head”, frankly. Finally, there is “Working with the Canvas” … the new “canvas” element being sufficiently flexible that the author's opted to pull it out for its own chapter, and a look at how other elements and tools (and CSS and JavaScript) work in relation to it. You can visit his page with the code samples to see some of these in action.
Again, you're probably not going to learn the ins-and-outs of writing HTML5 from this reference, but if you're messing with it and think “oh, heck, how did that shadow thing work?”, you're a quick flip to the Index away from finding out the specifics with this. One of the things I'm most excited about here is the ability to write in fonts that are not dependent on what the end-user has installed on their system … a huge leap forward for web design.
HTML5 for Dummies is probably going to be available “wherever programming books are sold”, but the online new/used vendors have “new” copies for under three bucks (plus shipping, of course), which might be a good thing to think about if you are, like I was, living in an earlier realm of code. It goes without saying, however, that this isn't for everybody, or even for most of the folks reading these reviews … but I'd recommend it to anybody who's not a massive code wiz, who wants to keep up with what's out there these days!