aaaalso

*trommelwirbel*
HTML ist die ganz alte, erste, unsaubere, verunglimpfte variante. sie ist definiert über SGML. XHTML ist eine neue definition von HTML, die jedoch nicht in SGML sondern in XML verfasst ist. das ist in vielen punkten besser
XHTML unterliegt somit den (durchaus positiven) eigenschaften von XML, u.a. das elemente immer geschlossen und korrekt verschachtelt sein müssen um einen korrekten elementbaum zu bilden. das hat vor allem den vorteil, dass XML/XHTML-dokumente von einem sog. parser wunderbar verarbeitet werden können, währen das alte, inkonsistente HTML quasi "kaputt" ist.
zudem wurden eine sehr unschöne sachen aus HTML nicht in XHTML übernommen, ausgetauscht oder überarbeitet.
XHTML selbst ist iirc auch schon um die 5 jahre alt, also mehr als angesagt im vergleich zu HTML. daher solltest du auf jeden fall XHTML lernen.
CSS dient zur formatierung in bezug auf die darstellung/gestaltung während XHTML primär für die semantische struktur von dokumenten sorgen soll. beide sind ein sehr gutes team und wenn du etwas buntes willst, dann solltest du auf jeden fall auch CSS lernen.
früher wurde viel "bunt" direkt aus HTML erzeugt, aber das war sehr unschön, unflexibel und hat auch schichten vermengt, die nicht zusammengehören.
beide bücher gehen hoffentlich auch auf XML ein, lies am besten beide. mach dir die grundzüge von XML klar, evtl. findest du auch eine gegenüberstellung von HTML und XHTML. es bleibt jedoch ein großer teil, der die anwendung von (X)HTML umfasst, und da sollten dir beide bücher helfen.
edit:
nur idioten dies ned besser können schreiben formatierungen ausrichtungen und co in den quellcode ihrer seite :
nanana! es macht keineswegs immer sinn, für jede spezielle formatierung eigene klassen im stylesheet anzulegen. gerade wenn eine formatierung (bzw. viele kleine anpassungen an vielen tags) nur auf einer seite vorkommt wäre es unnötiger (wenn auch recht kleiner) ballast, sie in ein dokument zu stopfen, das wiederverwendet wird. ok, bei nem reload würde man mehr traffic haben wenn der code in der seite ist, aber es wäre deutlich einfacher zu warten (nicht im zeitlichen sinne).
dennoch hast du natürlich im grunde recht, möglichst viel sollte wiederverwendet und an zentrale und nicht redundante stelle ausgelagert werden.
ein wunderbares beispiel für die trennung von inhalt und darstellung ist
http://www.csszengarden.com/
dort wird immer die gleiche xhtml-seite verwendet. über das select-a-design-menü kann man in zehnerschritten zwischen rund 200 designs wählen, die jeweils aus stylesheets (samt darin referenzierten grafiken) bestehen, die auf das xhtml gelegt werden.