There is certainly no shortage of books about CSS. For more than a decade now, HTML, CSS and JavaScript have been the core client-side technologies required of competent website authors. Sure, many people get by using WYSIWYG editors (e.g., Dreamweaver) and/or a CMS (Drupal, Joomla, yui, etc.) to produce websites. But, for true design competence and flexibility, serious professionals need to master these three "languages." Typically, one learns (X)HTML first, followed by CSS and then JavaScript, in that order. At least that has been my path.
Over the last decade or so, as the benefits of the separation of structure and presentation have been accepted by the design community, CSS has become increasingly important. HTML documents that just a few years ago would have been implemented with nested tables and spacer gifs in the HTML markup now have their presentational aspects created in separate CSS files. Almost everybody acknowledges that is a good thing, and I agree. Unfortunately, many very good books on CSS over the last decade (and still on the market) devote a lot of space trying to convince developers WHY CSS styling is preferable to the old-time methods, thus minimizing the pages they can devote to HOW one actually uses CSS. There was clearly a need for that emphasis in the past, but let me suggest that the war has been won and it's time to move on.
This second edition of McFarland's book is, everything considered, the best book I've yet read on CSS, and I've read quite a few. At over 500 pages, it is thorough in its coverage and doesn't waste space rehashing the styling wars that have dominated the literature of the last decade. Explanations of topics are cogent and well illustrated. In addition to a copious amount of downloadable code examples, the author includes many links to online sources for further exploration of important topics. Browser incompatibilities are well covered and hacks provided. I especially thought the explanations on using CSS for layout tasks (e.g., divs, floats, relative and absolute positioning) were unusually clear and easy to understand.
For those who already are reasonably familiar with (X)HTML and looking for a good guide to the world of CSS, it's hard for me to imagine a better book. It wasn't the book I used to first tackle CSS but, in retrospect, I wish it had been!