I've just finished reading Dan Cederholm's latest book Bulletproof Web Design. The book essentially teaches techniques for using clean HTML and CSS to build robust websites — designs that survive user manipulation, that elegantly degrade with missing technologies or features, and which are always accessible to people.
When I heard that Dan was writing a followup to Web Standards Solutions, I was really hoping that this is pretty much the topic he would tackle. In some ways, the old method of coding with tables and spacer images, while heavy and somewhat inaccessible, was comparitively robust. As designers, we could usually mitigate problems for small screen sizes, stretching layouts, missing images, and other issues. And, we lost some of that control initially when working with CSS layouts. Now, there are lots of techniques for handling those issues and Dan describes many of them in Bulletproof Web Design.
This is one of the first second generation CSS design books I've read. Thankfully, the "here's why you should use CSS" thesis is left behind and we're down to more of the nuts and bolts of how and why techniques are used. However, it's also not a book of fancy hacks for achieving extreme layouts. All of the examples Dan lays out are effective ways of using CSS for practical everyday design challenges.
I especially liked the emphasis in the book on allowing for unknowns when designing a layout. Header areas that are flexible for various amounts of content, boxes that stretch for two words or two hundred, and using backgrounds that stretch outside of their frames to allow the frame to grow, are just a few examples. Unfortunately, there a so many CSS-designed sites that rely heavily on absolute positioning and fixed-size elements that break apart with a single increase in text size. Dan shows that such layouts are possible and can be flexible.
If it sounds like I've got nothing but good things to say about this book, well, that's because I don't. This is an important book for people who design with CSS. Even if you don't learn a lot of new things by reading Bulletproof Web Design (nothing in here is very radical, which is kind of the point), the ideas in it will reinforce techniques and concepts you're already using.