Review of "Web Design in a Nutshell"

Oakland.pm

Reviews

Review of "Web Design in a Nutshell"

author: Jennifer Niederst Robbins

reviewer: George Woolley

Title: Web Design in a Nutshell, Third Edition
Subtitle: A Desktop Quick Reference
Publisher: O'Reilly
Author: Jennifer Niederst Robbins
Edition: Third, February 2006 
Series: In a Nutshell
ISBN: 0-596-00987-9
Pages: 826
Cost: $34.99 US, $48.99 CA, £24.99 UK

Notes

  • The information above is taken from O'Reilly's on-line catalog entry for the book.
  • As far as I can tell and contrary to the cover image, the author's name is Jennifer Niederst Robbins. The cover on my book has the longer name.

Short Review

Smiley Rating: Very good :) :) :) :) of 5

This book is a very good O'Reilly Nutshell book. More specifically, it's:

  • a reference for technologies for frontend web design, especially (X)HTML and CSS
  • concise yet comprehensive
  • not a tutorial.

If that's what you want, go for it.

Oh, another thing, the book has been completely rewritten since the second edition to support using (X)HTML markup to indicate the structure of a document and CSS to specify the presentation.

Want more detail? See my somewhat longer review.

Or you may wish to take a look at the table of contents and sample chapter available here.

George Woolley of Camelot.pm and Oakland.pm

Miscellaneous

Chapters

  1. Web Standards
  2. Designing for a Variety of Browsers
  3. Designing for a Variety of Displays
  4. A Beginner's Guide to the Server
  5. Accessibility
  6. Internationalization
  7. Introduction to XML
  8. HTML and XHTML Overview
  9. Document Structure
  10. Text Elements
  11. Creating Lists
  12. Images and Objects
  13. Tables
  14. Frames
  15. Forms
  16. Cascading Style Sheets Fundamentals
  17. Selectors
  18. Font and Text Properties
  19. Basic Box Properties
  20. Color and Backgrounds
  21. Floating and Positioning
  22. CSS for Tables
  23. Lists and Generated Content
  24. CSS Techniques
  25. Managing Browser Bugs: Workarounds, Hacks, and Filters
  26. Introduction to JavaScript
  27. DOM Scripting
  28. Web Graphics Overview
  29. GIF Format
  30. JPEG Format
  31. PNG Format
  32. Animated GIFs
  33. Audio on the Web
  34. Video on the Web
  35. The Flash Platform
  36. Printing from the Web

Notes

Appendixes

  1. HTML Elements and Attributes
  2. CSS 2.1 Properties
  3. Character Entities
  4. Specifying Color
  5. Microformats: Extending (X)HTML

Parts

  1. The Web Environment (ch. 1-6)
  2. The Structural Layer (ch. 7-15)
  3. The Presentation Layer (ch. 16-25)
  4. The Behavioral Layer (ch. 26-27)
  5. Web Graphics (ch. 28-32)
  6. Media (ch. 33-36)
  7. Appendixes (A-E)

Notes

  • The numbers in parentheses indicate the chapters (or appendixes) included in the Part.
  • I've shortened some Part names.

Some Main Index Entries

  • A List Apart
  • accessibility
  • attributes
  • audio
  • background color
  • background images
  • borders
  • browsers
  • Cascading Style Sheets (CSS)
  • character entities
  • color
  • compression
  • content
  • display property (CSS)
  • DOCTYPE declaration
  • document structure
  • elements
  • embedding
  • Flash (Macromedia)
  • fonts
  • frames
  • GIF (Graphic Interchange Format)
  • HTML (Hypertext Markup Language)
  • id attribute
  • images
  • inline elements
  • JavaScript
  • JPEG (Joint Photographic Experts Group) format
  • links
  • Macintosh environment
  • margins
  • Microsoft Internet Explorer browser
  • PNG (Portable Network Graphic) format
  • positioning
  • presentation
  • properties
  • Quicktime plug-in player (Apple)
  • quotation marks (")
  • Recommendations (W3C)
  • scripts/scripting
  • style sheets
  • table element
  • tables
  • text
  • W3C (World Wide Web Consortium)
  • web pages
  • web standards
  • Windows environment
  • XHTML (Extensible Hypertext Markup Language)
  • XML (Extensible Markup Language)

Note

  • The list above includes main index entries with at least 10 subentries.

Some Web Design Fun :)

OK, here are some links you might enjoy:

Online Watch

As of 2006-03-20, I don't see this book on Safari Tech Books Online. :(

There's more information about the book available via the O'Reilly catalog entry. In particular, you may wish to look through the table of contents and read the sample chapter (16. Cascading Style Sheets Fundamentals).

If you feel like learning more about the author, you could check out:

Two Other Web Design Books

Notes

  • These books were both published in 2005.
  • You can see my reviews of them by clicking on their cover images above.

Somewhat Longer Review

Contents

The Title

Web Design

Based on the title, I suppose someone might expect this book to focus on the principles of web design. I was expecting the focus to be, instead, on frontend web design technologies. However, I didn't expect the book to include the details of web graphic creation and manipulation partly because that would make the book way too long.

Note

  • By frontend web design here I mean development of HTML pages using markup & style sheets and web graphics. Frontend web design in this sense does not include programming or server administration.

In a Nutshell

The following is from my earlier review of "Linux in a Nutshell":

O'Reilly Nutshell books

  • document the details of a topic or technology area
  • are comprehensive but concise
  • are not tutorials
  • are useful for getting a quick answer

A Desktop Reference

Based on the subtitle, I certainly expected this book to be useful as a reference. So I expected:

  • formated material where practical
  • a good index

I also expected this book to be larger than a pocket reference and smaller than an unabridged dictionary. ;)

Does the book fit the title?

Yep. This book is, indeed, focused on the technologies a frontend web designer who is not a graphic designer needs to understand. It's a very good representative of the Nutshell Series, that is, it does provide the details on its chosen topic, it is comprehensive but concise, and it is not a tutorial. This book is suitable in size, format and content for a desktop reference on its chosen topic; it does have a useful index, and material is formatted for easy reference where appropriate.

If you are looking for a book that focuses on web design principles, this is not the book you seek. That being said, this book certainly does give a fair amount of guidance on good web design.

About the Reviewer

Web Design Experience

I'm an amateur web designer. I've put together and maintained a number of sites.

I tend to keep things relatively simple. I don't use frames, XHTML or XML in my pages, up until now anyway.

Mostly I develop and maintain websites using the Linux OS.

Programming Experience

I don't need to work now, but when I did work I was a software developer. I've made significant use of more than 20 programming languages.

On the client side, I've used JavaScript some but not much.

On the server side, I've used Perl extensively for CGIs. Recently, I've been using PHP quite a bit.

O'Reilly Experience

I own quite a few O'Reilly books. I have a high regard for O'Reilly.

I've reviewed a lot of O'Reilly books.

Author Experience

I own two other books by the author: the second edition of "Learning Web Design" (which I reviewed in 2003) and the first edition of the book I'm reviewing here.

What You Get

What you get is a sizeable (over 800 pages if you include the preface, appendixes, glossary, index, etc.) reference for frontend web design technologies, but without all the details for graphic design. The book is also suitable for reviewing areas that you already know.

Below I'll briefly describe the main parts of the book.

Part I: The Web Environment

Part I lays the foundation for the rest of the book. Some of the questions you'll find answers to are:

  • Why are web standards important?
  • What are the structural, presentation and behavioral layers?
  • What do you need to know about the server?
  • How do different browsers, different displays, accessibility and internationalization effect web design?

Part II: Structural Layer

Part II addresses structuring a document using markup. Structuring a document includes marking such things as: headers, lists, paragraphs; it does not include specifying how these things are to be presented, e.g., what fonts are to be used, e.g., what the top and bottom margins are for paragraphs.

It addresses such questions as:

  • What is XML?
  • How do document type declarations work?
  • How do various HTML tags work and what attributes do they allow?
  • What's deprecated?
  • How do you embed media in a web page?
  • How do tables, forms and frames work?

Part III: Presentation Layer

Part III is about how to control presentation using Cascading Style Sheets (CSS).

Some of the questions addressed are:

  • What's the structure of a CSS rule?
  • How can you control the presentation of headers, paragraphs, lists, tables, etc. using CSS?
  • How can you create columns using CSS?
  • How can you deal with browser bugs?

Part IV: Behavioral Layer

Part IV is about using client side scripting to produce interactivity on the web page. It introduces JavaScript and tells you how to use it to manipulate the DOM (document object model) to change the document dynamically.

Note

  • DOM is a hierarchical view of a web page that can be searched and manipulated. Manipulating the DOM typically changes the appearance of the page.

This part also gets you started with AJAX which allows you to easily interact with server side scripts.

Part V: Web Graphics

Part V provides important information on web graphics formats. There are separate chapters on GIFs, animated GIFs, JPEGs and PNGs.

Part VI: Media

Part VI is about how to deal with media other than text and images on a monitor screen. There are separate chapters on audio, video, Flash and printing.

Part VII: Appendixes

The appendixes and their formats are listed in the table below.

Appendix Name has an entry
for each
format
of an entry
A. HTML Elements
  and Attributes
HTML element
(e.g. p)
  • format
  • function
  • attributes
B. CSS 2.1 Properties CSS property
(e.g. color)
  • property name
  • function
  • values:
  • initial value:
  • applies to:
  • inherited:
  • computed value:
C. Character Entities character
entity
(e.g. for ~)
  • decimal
  • hex
  • (named) entity
  • symbol
    (appearance)
  • description
D. Specifying Colors   (various formats)
E. Microformats:
  Extending (X)HTML 
  (running text)

Notes

  • CSS 2.1 is a version of CSS. It's what most current browsers try to support.
  • Appendixes A, C and E have to do with the structural layer. Appendixes B and D have to do with the presentation layer.

Other

Following the Appendixes are a Glossary that defines around 120 key web design terms and a useful index.

Likes

As I see it, the purpose of this book is to be a reference to frontend web design technologies, especially (X)HTML and CSS, for frontend web designers who are committed to making a clean distinction between structure and presentation. However, the book is not intended to be a reference for the details of web graphic design.

The book is true to this purpose.

Organization

The organization of the book is superb. The grouping of chapters into parts is well done. The chapters are individually coherent and of reasonable size; the chapters range in size from 8 pages to 30 pages.

The first 3 appendixes are highly formatted and the information in them is easily accessible. The formats used in the first 2 appendixes for HTML elements and CSS properties are also used in the body of the book in the parts that cover (X)HTML (Part II: The Structural Layer, ch. 7-15) and CSS (Part III: The Presentation Layer, ch. 16-25).

The formatted entries for HTML elements and CSS properties are very clear, and the author wisely uses them in both the body of the book and in the appendixes. For example, the formatted entry for p (paragraph) exists in both Chapter 10 "Text Elements" and Appendix A "HTML Elements and Attributes". In the chapter, along with the formatted entry for p there is an example of paragraph markup and some additional discussion of its usage. I believe this redundant use of the formatted entries is warranted because:

  • The two appendixes in question need to be complete.
  • The chapters in question need to be as clear as possible, and the use of the formatted entries supports that.

Selection

Given the purpose of the book, the most important things to cover are (X)HTML and CSS. The book covers these thoroughly. The book also covers a number of other relevant topics of importance to a frontend web designer in less detail.

The book wisely does not try to cover everything involved in web design. For example, there isn't much about web programming in this book. However, it is important for a frontend web designer to have some knowledge in this area. The book includes:

  • Chapter 4 "A Beginner's Guide to the Server"
  • Chapter 25 "Introduction to JavaScript"
  • Chapter 26 "DOM Scripting"
There's also a couple of pages on using Java applets in Chapter 12 "Images and Objects". The above should give a frontend web designer enough information to interface with scripts/programs and with programmers who write them. Similarly, the book does not address the details of creating and manipulating web graphics.

The book would become unwieldy if one incorporated the details for web programming (even if only for JavaScript) and for web graphics.

Structure/Presentation Distinction

The book has been completely rewritten to make a clean separation between structure and presentation, using (X)HTML for structure and CSS for presentation.

Valuable Pointers

While this is not a book on web design principles, it does contain a good deal of guidance for web designers.

More specifically, you are encouraged to:

  • follow web standards.
  • use (X)HTML for structure and CSS for presentation.
  • design for a variety of browsers.
  • design for a variety of displays.
  • follow accessibility guidelines.

There are also many much more specific pointers. For example, in Chapter 10 "Text Elements", there's a table that gives a CSS property alternative for each of various HTML presentational elements. One entry in this table suggests that in place of the HTML element b you use the CSS font property font-weight: bold

Expert Writers

The author is an expert frontend web designer.

There are several chapters written by others, who are experts in the particular area of the chapter they write:

  • Chapter 5 "Accessibility" (Derek Featherstone)
  • Chapter 25 "Managing Browser Bugs: Workarounds, Hacks, and Filters" (Aaron Gustafson)
  • Chapters 26 "Introduction to JavaScript" and 27 "DOM Scripting" (Aaron Gustafson)
  • Chapter 35 "The Flash Platform" (Todd Marks)

The inclusion of these chapters enhances the book.

Gripes

Who Book for Not Made Clear

The book doesn't explicitly say who it's intended for.

I'd like to see an explicit clear statement of who the book is for in the Preface.

Paragraph Element Oddity Not Addressed

The paragraph element in HTML does not map well onto English language text. In my markup and CSS, I have to do a fair amount to get around this. The author doesn't address this problem or even point it out.

Linux Not Taken into Account Enough

Since I use mostly Linux for creating and maintaining web sites, I'd like more mention of it when OS is relevant.

Not Say What Elements May Contain

I'd like to see the format for HTML elements include what an element can contain. This seems like essential information to me.

Who's the Book for?

Ideal For

This book would be ideal for someone with all the following characteristics:

  • is already into frontend web design.
  • is committed to clearly separating structure from presentation.
  • uses (X)HTML and CSS quite a bit.
  • knows much of (but not all of) what is covered.
  • is not expecting this book to serve as a reference for the creation and manipulation of web graphics.

Not For

The book would not be good for any of the following:

  • someone who is just beginning to do web design and wants a tutorial to get them started.
  • someone who wants to avoid CSS entirely.
  • someone who is just not interested in frontend web design. ;-)

Final Thoughts

If you've actually read the review above, have some experience using (X)HTML and CSS, and need a reference for frontend web design (especially (X)HTML and CSS), I recommend this book to you.

Complete Draft Uploaded to the Web: 2006-03-25

Draft Status Removed: 2006-04-04