Book review: Andy Budd’s CSS Mastery

buy book from Amazon

I’ve been meaning to review this for ages, but have been pretty busy, so didn’t. But that’s OK, as it’s given me the opportunity to road-test the book’s usefulness.

Executive summary: a very good book, both for learning and for reference.

The book’s subtitle is “Advanced Web Standards Solutions”, which partners it explicitly with the excellent “Web Standards Solutions” by Dan Cederholm, also published by friends of ED.

It’s a legitimate comparison, as Budd’s book is good follow-on. While Cederholm’s book concentrates mostly on semantics, and only introduces CSS, Budd’s book is concerned mostly with the dirty truth of browser incompatibilities, hacks and the disappointments behind the theory of CSS. That’s not to say he forgets markup or semantics; there are regular mentions of accessibility, which is refreshing in CSS books as they generally tend to pander to visual designers exclusively. I was also pleased to read a discussion of the recent fad of abusing the dl element.

Budd is not only opposed to markup abuse; he also cautions against wanton CSS abuse:

There is a rather unfortunate overreliance on hacks and filters, especially with those new to CSS. When something does not work in a particular browser, many CSS developers will immediately employ a hack, seeing it as some kind of magic bullet. In fact, some developerss seem to measure their expertise by the number of obscure hacks and filters they know. (page 155)

Amen, Brother Budd!

The two chapters that have been the most practical use to me as a reference have been the “hacks and filters” chapter and the “bughunting” chapter, the latter having very useful information on IE bugs and hasLayout. It’s saved me hours when banging my head against a CSS brick wall. Much of this information (by no means all) is available scattered around the Web, but I’m not a great fan of Googling for frustrating hours when a deadline looms, if I can have it all explained to me in one place.

For me, there’s not much to fault in the book. There are a few inconsistencies between Budd’s chapters and the case-studies by Messrs Moll and Collison. For example, Budd writes (correctly) on page 64 that “many of the most popular screenreaders ignore elements that have their display value set to none or hidden, whereas on page 193, Collison writes “Use display:none wisely … Spare a thought also for anyone using a screenreader for hidden content still exists and will therefore be read by such devices”. The publishers should have caught this contradiction.

One of my biggest bugbears, the Accessibility Old Wives’ Tale™, is to be found on page 130: “.. many screenreaders will ignore text between form elements, unless they are enclosed in a label.”. So, which screenreaders are those? Gez Lemon, one of the people I trust most to test his code with assistive technologies, has written accessible form help that has plenty of text outside labels. So this is a plea to all authors, not just Budd: if you make statements like “some browsers” or “many screenreaders”, please identify the culprits.

The faults I find are comparatively trivial compared with the time that this book has directly saved me – and, as I don’t get paid by the hour, I like saving time. It’s a worthy companion to the Cederholm book, and I’ve no hesitation in recommending it.

Leave a Reply

HTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> . To display code, manually escape it.