Wednesday, September 16, 2009

The CSS Anthology: 101 Essential Tips, Tricks & Hacks

Author: Rachel Andrew
Paperback: 400 pages
Publisher: SitePoint; 3rd edition (July 28, 2009)
ISBN-10: 0980576806
ISBN-13: 978-0980576801

I previously reviewed the 2nd edition of this book, so I was interested in what was changed and/or added in its current incarnation. Of course, the release of Firefox 3 and IE 8 are enough to warrant an updating of "tips and tricks" relative to CSS and web design, but was there more? The back cover blurb didn't indicate such, but I looked further.

The Preface seemed a likely place to start. There is no What has changed in this book section. The What's Covered in this Book? portion is a detailed summary of the TOC, but doesn't mention how chapters here compare to those in the prior edition. The Who Should Read this Book? piece is as you might expect: aimed at people who need to use CSS, such as designers and developers, and who don't need a lot of hand holding. Sorry if that sounds "snarky", but this book has always been about getting up to speed fast and dispensing with high level explanations and theory.

Chapter 1 is actually a quick tutorial on CSS, if you need a bit of a refresher. That shouldn't really include the main audience for this book, but there will be people who buy Andrew's text who might benefit. Chapter 2 also tends towards "the basics" as the title indicates: Text Styling and Other Basics. Fortunately, this chapter is also the start of the "anthology" content of the book, offering information formatted as Question, Solution, and Discussion. The Discussion part of each "tip" is certainly the largest, containing information on any specifics, curve-balls, and gotchas that may be contained in the particular technique involved.

Chapters are organized into functions such as Navigation, Tabular Data, Forms and User Interfaces, and so on, so if you have an area of interest or need, just shoot right to the relevant chapter, and then find the required task. Chapter 6 is the "Forms" chapter, but is really only half the story. Yes, it covers the browser end of forms, but of course, they won't really work unless you have the server side configured as well (think PHP, for instance). In that sense, the chapter and the book operate as one piece in the larger puzzle of web design and development. It's also a reference by design, so don't imagine that it's the first book you'll need to learn CSS.

I was mainly interested in Chapter 7: Cross-browser Techniques, since that's the primary reason for issuing another edition of this book. Designing websites for different platforms requires the designer to think in very broad terms, depending on the designer's audience. You have to address the most widely used browsers (unless you're serving a niche market), plus consider both PC/Mac, and mobile device platforms, if you care about that sort of thing. A common newbie designer mistake, is to create a site and test it on only one browser (and only one version of that browser), and only one OS. I've created what I thought of as a beautiful site when viewed in Firefox on Linux, but that turned out to be a "problem child" when I looked at it in IE 7 on XP. Andrew includes a nice little table on page 220, outlining the various browser and OS platforms to consider, including Safari, Chrome, and Konqueror, so a lot of thought has been given to this matter.

Chapter 7 is the "testing" chapter, instructing the reader on the options for being able to view their creations on Windows, Linux, and Mac (Linux live CDs, dual booting options, and so on). We are all some kind of "user". I tend to be a Linux user, but my wife exclusively uses Windows, and my daughter tends towards Mac. Developers have preferences as well, but letting those preferences dictate how you design and test can be a critical mistake, especially if you're doing this for money, and your company wants your product to work equally well for all customers.

I've read bad reviews on the previous edition of this book but, in my opinion, it was the reviewers who made the mistake. Their basic assumption was that they could learn CSS, more or less from scratch, by reading Andrew's text. This is not the intent of this book. If you know little or nothing about web design in general, and CSS in particular, acquire those skill sets first. This book is intended to help the reader solve specific problems, relative to the latest OS, browser, and hardware platforms, not to be a general introduction to the topic.

SitePoint offers a couple of forums to support the book, which is great, since I sometimes have questions about content that I can't get answered any other way. I did find the pop-ups on the forums rather annoying, though. Nice that you want to market your books, SitePoint, but if I'm on your site, I'm already aware of them and interested. Don't kill the "magic" by being too commercial.

If previous reviews of a book are good (as is the case with this book), then usually (unless the publisher or author decided to completely throw a monkey wrench into the machine) subsequent editions will maintain the quality. Fortunately for SitePoint and Andrew, the 3rd edition is up to snuff. If you fit the audience profile, and need to update your CSS skills for the most current browsers and so forth, The CSS Anthology: 101 Essential Tips, Tricks & Hacks should be on your wish list.