Dal web mi consigliano questo:
http://www.amazon.it/HTML-CSS-Design.../dp/1118008189

E' per chi inizia (è in inglese)
Personalmente per l'argomento ti consiglierei di continuare con le guide online.

Poi ovviamente dipende dai tuoi scopi e da come sei abituato.
La programmazione web ad esempio è un argomento talmente vasto che non puoi farlo a step, non puoi sapere tutto di html, poi tutto di css, poi tutto di php, poi ...etc.., arrivato alla fine probabilmente i linguaggi che hai studiato non esisteranno nemmeno più.

E' meglio secondo me un approccio più omogeneo, studio le basi dell'html, imparo le prime cose con un linguaggio di programmazione, successivamente imparo come interrogare un DB e come impaginare correttamente i dati in una pagina html, poi passo ai CSS, etc...