Search This Blog

Tech Book Face Off: HTML & CSS: Design and Build Websites vs. HTML5: The Missing Manual

HTML and CSS are the language of the web. Every time you visit a website in your browser, the browser sends a request to the website server to retrieve an HTML file. The server responds with the file, which is in human-readable plain text. That HTML file likely contains links to CSS and JavaScript files, and those are downloaded and interpreted along with the HTML to give the webpage the final look that you see in your browser. The entirety of the web that you see is based on these languages, and if you want to be an participant in the web, you would benefit greatly by learning them. On the one hand, I waited far too long to learn HTML and CSS myself. For how easy they are, I should have picked them up years ago. On the other hand, the benefit of waiting is that I didn't have to endure the raft of changes that those languages have gone through in the last decade, culminating in HTML5 and CSS3. Since the time was long overdue to learn them, I grabbed a couple of books and got to work.

HTML and CSS: Design and Build Websites front cover VS. HTML5: The Missing Manual front cover

HTML & CSS: Design and Build Websites


This book is another reason it was beneficial to wait to learn HTML and CSS, not that I should have waited. I have never experienced a technical book like this before. Jon Duckett did an incredibly masterful job presenting these languages in a way that the reader can absorb quickly and easily. It's a full-color layout with beautifully structured pages that detail all of the important HTML tags and CSS attributes, giving clear examples of each tag or attribute throughout the chapter and then a longer, fully working example at the end of each chapter.

After seeing a book done like this, it now seems painfully obvious that this is the way a book on HTML and CSS should be done. Why wouldn't a book on the languages of the web be in full color with an engaging layout and clear, no-nonsense coverage of the topics? Why wouldn't it be visual? The only way it could have been better is if it was interactive, essentially an impossibility for a printed book. It was an absolute pleasure to read, and it was as if the content was being absorbed directly into my brain through my eyeballs. I ended up finishing the whole book in a matter of hours. When I was finished, I couldn't believe I had waited this long to learn HTML and CSS. These languages were so straightforward, and this book made them ridiculously easy to learn.

Of course, because the book is full of such visually rich content, it's really impossible to give it justice with words. Here are a couple pictures to give you an idea of how well done it is. Mentally compare them with every other technical book you've read.

HTML and CSS a closer look at the paragraph tag

HTML and CSS background position example pages

The content is so well presented and engaging that the reader can't help but quickly absorb everything. Really, this is the way it should be done! Go out and get your own. Highly recommended.

HTML5: The Missing Manual


I actually had read this book before HTML & CSS: Design and Build Websites, which could be good or bad, depending on how you look at it. It was good for this post because I can do an actual face-off between two HTML books. It wasn't so good for my leisure time because I wasted some of it reading a book I never would have finished, had I read the other one first.

I went on a bit of a rant last week about a comment that was made in this book about recursion. That was definitely not the defining weakness of this book, only a minor infraction as this book is not about programming techniques. However, it is a fairly characteristic example of the larger issues I have with this book.

Matthew MacDonald does start out rather well. His initial narrative about HTML5 is quite interesting, and it kept me engaged for a couple chapters. He is a decent writer. After the first couple chapters, though, I started to wonder who this book was really written for. He specifically made the point of telling the reader that he expected you to already know HTML and CSS prior to HTML5 so he would only be covering the new features. Okay, fine, I could deal with that, but by chapter 4 he had pretty much covered the new tags in HTML5 so he moved on to validating web forms and embedding audio and video in websites.

This is where things started getting weird. You see, these things take a fair amount of JavaScript to get working in a clean, user-friendly way, and that's fine. Matthew does a fine job of going through all of the idiosyncrasies of the different browsers and how to handle all of those issues while making nice, dynamic webpages using JavaScript. However, he assumes you already know JavaScript. He warned about that in the introduction, too. That isn't quite so bad. The JavaScript is actually pretty simple, and even if you have a passing familiarity with it, you should be able to understand it just fine. But then he keeps making comments like, and I'm paraphrasing here, if you're head's spinning from all the JavaScript code, don't worry. After a few instances of this apologizing or pandering or whatever it was, it started getting seriously annoying, even distracting. If he's going to give the reader a bunch of JavaScript because it's the best way to work around missing browser support for new features, he could do it without being patronizing.

As the book went on, it basically became a book about how to write JavaScript for HTML5 features. If your JavaScript skills are weak, then there pretty much wasn't anything there for you. If they are strong, you're going to wish he would just get on with the code and dispense with the disclaimers. Overall, I would say the book was light on HTML5 and heavy on JavaScript. I honestly wonder if it should have been titled HTML5 and JavaScript: The Missing Link. I can't imagine the type of web designer that could pick it up and use it as an HTML5 manual.

One last problem with this book is how quickly it will be hopelessly out-of-date, if it isn't already. The various browser manufacturers are implementing HTML5 features as fast as they can, and most features are already done in Firefox, Chrome, and Opera. Most of the book's content was about how to handle features that were not yet available in one or more browsers, but that time is quickly coming to an end. That will leave a lot of content largely irrelevant. Basically this is a book that no one needs.

Internet Explorer: The Missing Features


If you noticed, I didn't include Internet Explorer in the list of browsers that implement most of HTML5's new features. That wasn't an oversight. If you're using Internet Explorer 10 on Windows 8, you're in better shape, but that's not a lot of users. One thing these two books both make quite clear is that Internet Explorer is different than other browsers, and not in a good way. Microsoft does so many thing differently with the way Internet Explorer handles HTML and CSS that if it wasn't included with Windows, it's obvious that no one would use it. If the chronic incompatibilities are not intentional, then they're at least embarrassing. Though I suspect the former.

Beyond the slow and distorted feature adoption, Internet Explorer is also living in the dark ages of browser revisions. Firefox and Chrome long ago moved to the continuous model of browser updates, so every time you restart your browser, it could be updated to the newest released version (not sure about Opera, since I don't use it). This is great for both users and developers. Users don't have to think about updating their software anymore, and developers can assume that users are always on the latest version. Especially for a piece of software that needs to be connected to the internet to work, that makes a whole lot of sense. With Internet Explorer's antiquated update model, it could take more than a year for users to transition to a new version, longer with IE 10 because it needs Windows 8. That's an eternity on the web!

You Should Learn HTML and CSS


Yes, you should. It's easy. All you need is a text editor, like Notepad, and a web browser. I can't believe I waited this long to learn it. As for how to learn it, isn't it obvious? Read HTML and CSS: Design and Build Websites. It accomplishes everything it should with beauty and grace, and it stays focused on all of the HTML and CSS that matters. It is such a great book, there really is no comparison with any others. It raises the bar for a good technical book way beyond any other offering. I only wish I had held off on learning JavaScript a bit longer. Jon Duckett's next book, JavaScript & jQuery: Interactive Front-End Web Development is coming out in July. I enjoyed HTML and CSS so much that I'll probably get it anyway. As for HTML5: The Missing Manual, leave it alone. I'm pretty sure it's not for you.