EDIT: I wrote this just after I started learning but updated it with new resources and links just before I launched my personal site three years later.
No doubt about it, I found getting to grips with the basics of CSS was a bit harder and took longer than learning HTML. But it’s so much more fun, and the effort you put in is really rewarded with an immediate visual impact in your browser. To be clear I’m talking here about learning the basics of CSS: selectors and styling, not layout. I’ll deal with that later.
I really enjoyed learning about selectors. The linkages back to HTML elements also gave me the chance to review what I had learnt about HTML as I learnt about the different CSS selectors. This meant that by the time I got to the more complicated and combined selectors I was pretty comfortable and could enjoy the mental gymnastics involved in crafting targeted selectors.
Learning CSS can seem endless (shadows, colours, backgrounds, borders etc.), but once I realised I didn’t have to memorise everything I started to feel much better. Taking some time to through some of the most important formatting techniques, seeing their potential and how they can be combined is plenty to be getting on with. All I have to is remember what’s possible and where I can find guidance, when I need it.
Initially, I dived straight in with CSS Essential Training on trusty old lynda.com (now LinkedIn Learning) that I get free with work and was quickly overwhelmed as the pace was too much for me. I followed the course through to the end but I didn’t enjoy it and was feeling a bit inadequate by the end and I was beginning to wonder if this whole coding thing was for me.
Luckily, James Williamson's, courses came to the rescue again. I followed his courses on CSS Selectors, CSS Layoutsand CSS Styling Navigation, which took me about 20 hours to go over the core concepts of CSS. (These were covered, along with responsive design in CSS Essential Training in a total of two hours!) Jame was much more my pace, and combined with the frequent practical challenges made me feel much more comfortable by the end.
I loved the encouragement to play around with selector combinations and writing elegant code. Again James's course is really good - with lots lovely examples, going as far as creating drop down navigation menus purely with CSS (which was a great challenge). I am still following the CSS Essentials courses on LinkedIn Learning (levels 1, 2 and 3) but mainly as a revision and cross-check after doing the more in-depth courses.
In addition to the courses above, Jon Ducket's book HTML and CSS proved to be a constant companion with me (I hope its updated soon). Lastly, I’ve also found CSS3 The Missing Manuel a great primer on basic concepts and selectors. I read the The HTML5 version too, but it wasn’t as helpful and I’m not sure I’d recommend it. The section on CSS in Learning Web Design by Jennifer Robbins was also really, ready good. I really recommend this book.