I don't think books will help. After the rapid growth of HTML5/CSS3, people are crazy about Responsive Web design, where the pages adjust them selves based on the browser. Using this approach you will have pages designed for both mobile and web. Use fiddle to test your CSS on the fly. Search Google for CSS layouts. You can have a look at bootstrap.css for fluid layouts.
This probably isn't the "best book" anymore, if it ever was, but
HTML Utopia: Designing Without Tables Using CSS
really made most stuff click with me, and I was mostly reading it.
Because (and this is only about half-way through, the first half is basic junk you've likely seen before) they start with some XHTML, and some designer's image, and show step by step, element by element, how to make each section look like the image. Which is really really nice.
However it's still basic. It gets a wee bit into floats (and via a diagram is the first time I could "see" what floating/clearing meant) and a bit of positioning, but mostly just margins and things, which is how you should position most stuff if you can anyway.
It did not get into float containment (enclosing floats rather than just clearing them), positioning for sprites, or that sort of thing. However once I was done with that book, I was able to pick up most of these particulars on the various tutorial sites pretty well.
I actually think that using books won't help you much. Instead learn it online. There are many services offering free online tutorials and learning sessions. Try them. If you really love to learn through books, then google it as the type of books which are good differs from person to person.