Author: Josh Hill & James A Brannan
Publisher: Prentice Hall, 2011
Aimed at: Novice web developers
Pros: Suitable for beginners
Cons: Latest standards patched in
Reviewed by: Ian Elliot
HTML5 and CSS3 are important but there is a problem for any book covering them. Do you simply deal with the new elements of do you start at the beginning and explain the technology from scratch? If you do go cover the basics you have a book that the beginner might get something from, but you will also annoy the expert who is expecting a book just on the new aspects of HTM5 etc.
This particular book starts from the beginning and attempts to teach HTML and CSS. The big problem is that it really doesn't go out of its way to explain things in a modern style.
Chapter 1 starts of with a look at what HTML is and the basic idea of using tags. At the end of the chapter you have created a simple web page. Chapter 2 introduces the idea that HTM5 is about semantic markup rather than layout, which is the job of CSS. Somehow the ideas aren't stressed strongly enough and you could well miss this important idea. Chapter 3 then moves on to look at text markup tags including lists. Again the idea that the look is controlled by the CSS is mentioned.
At this point the book moves to consider some very general topics that haven't changed much in HTML5: Chapter 4 is on hyperlinks - links to pages and email addresses and Chapter 5 is about adding images including image maps. Chapter 6 deals with tables and does make the point that a modern approach doesn't use tables for layout but this isn't emphasised enough. In fact in the introduction it actually suggests that you do use tables for layout and follows this with a boxout saying don't do it.
Next in Chapter 7 we move on to HTML forms which is a difficult topic because you have to figure out a way of processing the form and this generally means programming. The solution adopted is to use the MailTo target to mail the form to a user who does the processing.
This marks the end of the look at HTML5 and in Chapter 9 we move on to CSS3. Overall the account has been mostly about basic HTML updated to include HTML5 features. Also leaving CSS to this late stage makes it difficult to really understand what HTML is all about. Saying don't use a table for layout doesn't really sink in unless you can show the reader the alternative which is CSS based. This part of the book starts off with a look at how to find out about CSS3 - handy but nothing a search on CSS3 wouldn't have produced.
Chapter 10 then introduces basic CSS ideas - selectors and properties - and Chapter 11 goes into external and inline style sheets. The following chapters then deal with the various ways you can use CSS to style objects - borders, colors, background images, fonts, text styles, margins and padding. All of these are fairly easy to understand because they apply to individual elements.
Chapter 16 tackles the more difficult problem of CSS positioning but it quickly gives up on explaining the use of float - which is the most confusing part of CSS layout. You don't get any real examples of how you achieve a flexible page layout. The final chapter is a collection of random thoughts.
At the end of the day what you have in this book is a collection of very basic HTML and CSS ideas. It feels very much like an older book that has just had the HTML5 features added. It misses out, for example, anything to do with audio or video tags. It also doesn't really manage to convey the idea that HTML is not used for layout - that's the job of CSS. When it comes to CSS it really doesn't explain how you should use it to create a complete page. In fact this is a problem with the entire book. It focuses on what you do to individual elements rather than on the construction of complete pages.
If you want a very basic and uninspiring book on HTML and CSS then this might be a reasonable choice. For most readers there are better books on offer.