Web Design in a Nutshell, 2nd ed

Author: Jennifer Niederst



Publisher: O'Reilly

Reviewed by: Earle Martin

There seem to be two schools of thought when it comes to designing web pages. The first school is the Bells and Whistles school, beloved of graduates of design courses, and frequently involves intricate custom interfaces, Flash widgets and other chrome. The second school is the Do It Right school, also known as the Church of Nielsen. Alumni of this school want usability, usability, usability. Their sites often sacrifice sheen for functionality.

It is, of course, beyond the scope of this review to debate the merits of these two methods. However, it provides me with an easy way into the subject of the book being reviewed, as I've noticed that advocates of the second method are often self-taught, possibly having come from some sort of hackerly background already. So, if you want to get into designing websites, but have no previous experience in doing it, is Web Design the book for you?

In a word, no. Due to the way it's arranged, this book is definitely not the beginner's guide you're looking for. Due to the way that t he large amount of information within is presented, a neophyte would likely find it overwhelming. More specifically, the organisation of chapters in the book is a little muddled.

As an example of this happening we can take media-specific stylesheets, dissected in Chapter 5, "Printing from the Web". This is a useful topic, but misplaced, because the introduction to stylesheets and analysis of the general principles of their usage aren't given until Chapter 17. That said, when it finally arrives, the CSS chapter has a good breakdown of CSS properties, and an appendix to the book contains a large and detailed reference table of the various main browsers' support for each of them (taken from Meyer's CSS Pocket Reference, also published by O'Reilly).

Illustrations are copious and excellently clear. The comparison of how the main browsers render items such as form elements is a superb feature and certain to be of much use to those whose job it is to produce precious layouts. However, the figures are occasionally marred by careless typographical mistakes, such as in the demonstration of DHTML z-index positioning which is quite broken, and would lead to no small frustration on the part of anyone trying to learn from it.

I also have a small quibble with the author's explanation of relative pathnames. Although her explanation is absolutely valid, the example that she gives ('<A HREF="/users/jen/pers/art.html">') could lead to confusion, as it uses a UN*X-esque directory structure. In a Web context, the root directory of a site isn't going to be the same as the root directory of the server that it's running on (at least, one would hope not). Of course, this book is about web design rather than webserver configuration, but this still grated with me.

The book contains an outstanding comparison of the features of different browsers, including screenshot comparisons of the way different browsers display things such as form elements. There are also three very welcome chapters analysing the JPEG, GIF and PNG image formats and the issues associated with using them on the Web, such as palettes, dithering and file sizes, all topics which require a lot of knowledge in order to be employed effectively on a website.

I was a little disappointed - although not particularly surprised - to see that there was no coverage of the <link> relations (such as "next", "contents" and "glossary") beyond their being briefly mentioned, which is a shame, since web pages are generally lacking in metadata. It does, however, have a concise introduction to XML, a decent explanation of XHTML and even a mention of RDF. Other chapters include a detailed breakdown of the different formats of streaming audio and video, basic usage of JavaScript, Flash and Shockwave, SMIL, and even WAP and WML.

To my somewhat greater disappointment, in the inevitable brief section covering CGI, most of it is spent analysing usage of Matt Wright's notorious formmail script, and a strong recommendation is given of his Script Archive. As members of this community know well, the code quality of Wright's scripts is dubious, and the long source code chunk of formmail reprinted in the book will surely only be cause for confusion. If pre-rolled scripts are to be suggested, then a resource such as the nms scripts, which have been thoroughly vetted for quality, would be a much better choice.

Where Web Design really shines is as a reference work. The appendices are copious and contain information - such as tables of browser-specific tags, deprecated tags, character entities, tag attributes and the aforementioned magnificent CSS support charts - that many HTML coders had to spend years painstakingly cramming into their skulls. Whilst this is undoubtedly laudable, having information like this in a neat and handy form will make your life much, much easier. (I speak from personal experience.)

Talking of learning, that brings me back to the point on which I began this review. Does the book take a stand on the issue of style versus usability? The answer is that it doesn't. The author takes an admirably non-partisan stance on things, choosing instead to offer lists of the pros and cons of such issues as framesets or Flash, leaving the reader to make their own choice. The end result is that the writing is sane, but not strident, and this is to be welcomed.

In summary, Web Design in a Nutshell is, barring a few small flaws, excellent. Hopefully the third edition will recognise and correct these, and maybe even improve the chapter structure. I would recommend it to anyone who's already familiar with the basics of building websites. If you're coming at it completely fresh, there are probably better guides to pick to ease you into things. However, that said, you might well want to buy this book as well, as its detail and clarity are sure to make it a cherished and well-thumbed feature on your bookshelf.