This is the book that I wished for when I first started using CSS in 1999. A book that explains what CSS does, rather than what it is and one that shows you how to do stuff with CSS. If youve been looking for a book to get you started, this is it.
Its a really good book, not quite a great book, but a really, really good book.
Well written, easy to read and packed full of useful information, its almost perfect for the CSS newbie and has clear explanations of some of the trickier to grasp CSS concepts that will, no doubt, provide some aha! moments for Web designers who have been using CSS for some time.
What makes it a good book? Lets see...
A natural flow makes this book easy to read and understand, each chapter begins with a preface illustrating what you will learn. All code samples are clearly annotated with a concise explanation about what each section does.
Dozens of side margin notes and commentary add extra detail without cluttering the main content or interrupting the narrative flow. Many of these side notes contain urls for further information on the topic being explained, one of the most important ones to note is the Web site of the book: www.bbd.com/stylin/ where you can download the code snippets and more importantly read the errata notices.
1. XHTML: Giving Structure To Content
2. How CSS works
3. Stylin Fonts And Text
4. Positioning Elements
5. Basic Page Layout
6. Advanced Page Layout
7. Creating Interface Components
8. Building Web Sites
9. Appendix: CSS Properties And Values
The first three chapters give a good grounding in the structure of an XHTML document, how CSS works, how to write it, how it cascades and what inheritance is all about.
The author explains why Web standards are a great idea, how to comment your code for later ease of maintenance and how to avoid the usual newbie traps, like classitis.
The illustration of document hierarchy and clear and in depth explanation of how to use contextual selectors goes a long way to setting the new CSS user on the path to righteousness. I even learned a thing or two about adjacent sibling selectors and the universal selector that up until now Id just been blindly using as part of various hacks Id picked up.
Chapter four covers positioning of elements and includes a good look at the box model.
Page layouts are covered in chapters five and six including the use of some very up to date float clearing techniques.
Chapter seven takes a look at styling lists and form controls and walks the reader through the creation of multiple level dropdown menus. It also sneaks in a very useful and concise explanation of the star hack and the backslash hack
The last chapter brings everything together with a simple Web site build that demonstrates some of the issues a designer will face and how to overcome them.
My first skim through this book impressed me it seemed to cover all the right ground at a good level of detail and the colour and structure made it easy to read. A book I would have recommended to any Web designer planning to switch to using CSS. Closer inspection, however, left me slightly disappointed.
Why its not a great book
Despite its initial promise, there are a number of minor annoyances within the book that I feel stop it from being truly great.
I noticed a number of inconsistencies between the text and the code examples, some of which are picked up in the errata section of the books Web site www.bbd.com/stylin/sections/errata.htm , which I suggest you make a copy of and update your book, before you get started.
Most of the errata wont cause that many headaches if youre following along and you have your wits about you, as theyre mainly in the minor typo range, but a few will throw you completely the mixup in the code sample on page 146, where a vital part of the Alsett Clearing method is missed out will cause you major problems if youre using IE on a Mac.
The preface to chapter 4s illustration of the box model will also be confusing unless you get the updated version from the site. To be fair to the author, its a minor editorial error, placing the box border around the content rather than around content+padding, and clarified within the text and figure 4.2. Lets hope subsequent reprints get it right.
Some other minor niggles that stopped this book from being great for me were the authors intermittent use of the alt tag phrase, which we all know offends the purists alt is an attribute of the image tag used to provide alternative text for an image element. Ironically the main occurrence of this offence is on the page explaining how attribute selectors work.
Theres also a lot of confusing use of tag when describing XHTML elements, its a bad habit to get into and its important to stick with a single definition for the sake of clarity. Its not a big thing, but it does confuse, when one minute were discussing declaring a style for an element, the next discussing how inline tags cant contain block level tags; yet in the very next paragraph correctly calling them block level elements (p14) just to clarify, the tags are the bits within the angle brackets that start and end an element. (see also: en.wikipedia.org/wiki/HTML_element)
I also take umbrage at the authors pronouncement that for all practical purposes, a point is the same as a pixel; (p35) and his subsequent references to px dimensioned declaration values as points.(p107)
I imagine that designers from a print background will be disappointed when they find that a point isnt actually equal to a pixel, quite apart from the problems that declaring dimensions in pts will cause. Sizing fonts is comprehensively covered in chapter 3 and to the authors merit he recommends using ems and explains all the pros, cons and pitfalls of doing so. However, I do think the difference between points and pixels could have been handled a little better.
I also noticed a complete lack of reference to the use of @import in regard to linked stylesheets, this may have been deliberate to avoid over complication, but it led me to wonder how some of the more advanced CSS examples would fare in older browsers.
Its an easy read, packed with clear explanations, good illustration and pitched at a level suitable for experienced Web designers looking to make the transition from tables to CSS.
It promotes Web standards, the separation of content from presentation and explains the benefits of doing so.
It isnt a book about design, despite the title, but a designer should have some technical understanding, as the author suggests technical skills are the underpinnings of creative expression and this book goes a long way to making those technical skills easy to attain.
Pedantry aside, this is a really good book and worthy of a place on your bookshelf if you are at all interested in using CSS for fun and profit. Just make sure you get the errata and follow some of the authors suggested links for a deeper understanding of cross browser issues.
Treat yourself get a copy.
About the Author
Charles Wyke-Smith has been creating Web sites since 1994 and is currently Director of Production at Nacio (www.nacio.com), a corporate hosting and development company in Novato, CA.
In 1986, Charles started PRINTZ Electronic Design, which was the first all-computerized design house in San Francisco. The former vice-president of Web development for eStar.com, a celebrity information site, Charles has worked as a Web design consultant for such companies as Wells Fargo, ESPN Videogames, and the University of San Francisco.
An accomplished speaker and instructor, he has also taught multimedia and interface design and spoken at many industry conferences. Charles lives in Napa Valley, CA with his wife Beth and two daughters. In his spare time, he composes and records music in his home studio. Charles has also written one screenplay and is busily working on a second one.
* ISBN: 0321305256
* Page Count: 250 pages
* Author: Charles Wyke-Smith
* Edition: April 2005
* Book Website: www.bbd.com/stylin/
Tony Crockford is a UK based Web Developer, founder member of MACCAWS and can be found helping out the CSS newbies on the UK freelancers list