Author: John Allsopp
Publisher: New Riders
Aimed at: Self taught HTML implementers
Pros: Readable coverage of some basic ideas
Cons: Not a sophisticated approach to development
Reviewed by: Ian Elliot
This book is essentially a guide to the modern use of HTML for semantic markup and CSS for layout. As such it isn't really ground breaking or revolutionary. It also doesn't really tackle the problem that we all face which is working with browsers that don't implement a consistent standard and the fact that standards are something of a moving target.
It starts off with a nice account of the overall philosophy - use HTML to characterise your text and then use CSS to determine how it looks. For example, the <strong> tag marks up text that should be emphasised but doesn't determine how the layout should display the text. Interpreting the <strong> tag, i.e. determining how its text content should look, is a matter for CSS.
This idea is put over reasonably well in the first few chapters as part of an introduction to HTML and CSS. If you already know about either of these topics then you might will find the content too familiar. However, if you have just "picked up" your HTML or CSS then this will indeed fill in the gaps in your knowledge.
It then moves on to consider the DOM and this is where things get more complicated. The author doesn't really present any good explanation of why the DOM is different and important. Indeed occasionally the point seems to have been completely missed. For example, in a discussion of the controversial use of the innerHTML property lots of reasons are given for using it and for not using it but the main reason is ignored. The DOM is object oriented and takes us away from HTML tags. The innerHTML property brings us back to HTML tags and the string processing approach to implementing "behaviour". InnerHTML is not good because it's not very high level.
From here the book wanders off into other topics that are of interest to the author - accessibility, browser incompatibilities, best practices, CSS based layouts and so on. Then we are treated to HTML 5, CSS 3 and the future, web fonts and SVG and canvas - two of the most problematic areas of graphics on the web at the moment as neither are widely supported in a uniform way.