Book review: Everything you know about CSS is wrong
January 3, 2010,
While 'Everything you know about CSS is wrong' may be a presumptuous title for a book, it discusses an important development in the layout of websites and applications. The book provides an in-depth discussion of the advantages of CSS table display styles.
This last December, Sitepoint offered a number of very nice book deals, including some titles that I had been thinking about buying for some time. I took the publisher up on a few of the deals and bought a number of e-books, one of which is titled 'Everything you know about CSS is wrong' by Rachel Andrew and Kevin Yank.
The title is rather presumptuous, so what are web designers and developers really doing wrong, according to the book? Actually, not much, besides designing for as many rendering engines as the budget will allow. At first glance there's not much wrong with that, but the authors would like to make you change your mind. The core topic of the book is to break a lance for using table display styles in CSS (not to be confused with HTML table page layout from the good old nineties). Since IE8 supports almost all of CSS 2.1, including table display styles, it is now possible to use these for much simpler page layout, while preserving sane semantics in the document itself. This book explains how.
The contents are divided into five chapters:
- The Problem with CSS
- an explanation on how we've been doing things so far, and what the problems are with it
- CSS Table Layout
- a description of CSS table display styles, explaining how they work
- CSS Table Solutions
- details on how CSS tables can be used to solve some common layout problems
- Considering Older Browsers
- a discussion on how to deal with IE6 and IE7
- The Road Ahead
- a look ahead at technologies that add even more control over layout
The book is actually quite thin, weighing in at a mere 111 pages, with numerous code examples and screen shots to boot. The prose is light and pleasant to read, and the examples are clear without being trivial. The level of the book is intermediate. You need a working understanding of CSS, so it's not really suitable as a tutorial for novices. At the same time, CSS gurus will probably get the feeling that the entire content could have been covered in two or three blog articles.
The title is a bit of a misnomer. Firstly, CSS is used for much more than just layout, but let's allow the authors a little artistic license in that respect. While I'll gladly help drive another nail in the coffin of IE6 (and IE7 while we're at it), we will be using some of the old CSS trickery for a long time. For example, using absolute positioning so that the page layout is not controlled by the document structure will be here for a long time. The authors provide examples of making the display order deviate from the source order, in particular from the perspective of SEO and accessibility. However, what remains underexposed are the applications to and consequences for DHTML. I do think that CSS table display styles will be particularly useful in laying out web application interfaces, and forms in particular. In other applications it will be a very useful supplement, but it wil not replace existing approaches for some time to come.
Having said that, the arguments for using table display styles are well formulated. Actually, the book reads more like an essay on the merits of modern page layout than a howto on the technology. You will probably not use the book as a technical reference. Whether it's worth its money is something you have to judge for yourself. You will be able to find sufficient information on the topic online, but I doubt you will find an explanation that is as thorough as this, leaving you with a good appreciation of why CSS table display styles are a fundamental tool for web designers and developers.