Keith J. Grant:
I want to look at three key characteristics of CSS that set it apart from conventional programming languages: it’s resilient; it’s declarative; and it’s contextual. Understanding these aspects of the language, I think, is key to becoming proficient in CSS.
- Like HTML, unknown or slightly broken CSS doesn't stop a site in its tracks.
- You write something you want to happen in CSS, it happens, and a bunch of related things may happen to. I like Keith's example with
font-size. Increase it, and the container will also grow in height without you having to tell it to.
- You can't understand what CSS is going to do without understanding the DOM structure it is paired with and the other styles at play.
And it’s my suspicion that developers who embrace these things, and have fully internalized them, tend to be far more proficient in CSS.
Easy to learn, a lifetime to master, as they say.