So I have been relearning the right way about html and css. There are so many rules and edge cases that I never really grasped everything that was going on. So I took a bottom up approach that was project based because if you don’t work on projects and have any context, what ever book you read about css html design patterns will go one ear and out the other.
I spend most of my time on quora or stackoverflow for fixing edge cases and on forums to see what others have done for centering situations or when containers collapse due to floating content on html block level elements.
Here is a great reference book to learn all the basics of html css and their design patterns.
You don’t have to read it back to back. I would find a project work on it, then as I come across problems or concepts that don’t come clear. Just refer to the table of contents in this site and have a quick read. You will find great, clearly written explanations of why things happen the way they do in html/css.