"CSS is not too complicated. It's a good way to style HTML elements."
Humans think comparatively. So, it might help to tell them what CSS replaces.
HTML has many structures: text, images, links, tables, divisions, etc. We'd have to style them in a procedurally-generated layout. We'd learn a GUI or 2D graphics engine. Maybe several, use a cross-platform with its limits, or write our own. At one point, we needed native extensions like Flash.
Learning all of that would be difficult even for an experienced programmer. Whereas, many casual coders have learned CSS fairly easily. Then, it's usually just a matter of twiddling with it until it works right. Also, browsers make the twiddling cycle fast and easy vs testing homebrew GUI's.
So, it's definitely easier most of the time. It's not always what's best. It's a nice baseline for HTML, though.
My experience was the opposite: I picked up HTML-based web design quite easily, but when CSS came along, it was so finicky that I was never able to make it reliably do what I wanted. Everything seemed to be connected to everything else by invisible springs, so that if you breathed on one thing a little funny, something unwanted would happen somewhere else. I ended up abandoning web design altogether rather than continue fighting with CSS.
With traditional HTML layout, I could just write out a document, and reasonably expect that it would come out looking right: but using CSS was a frustrating, trial-and-error process, where it was often easier to change my design to fit what the CSS was willing to do than to suffer along, wrestling with endless side-effects, trying to make something happen that would have been easy with tables.
"I picked up HTML-based web design quite easily, but when CSS came along, it was so finicky that I was never able to make it reliably do what I wanted. "
That is true. It's easy to learn. It's easy to get to do straight-forward things. It's too unpredictable in many, use cases where an alternative layout might be used. However, those required actual programming on top of executing, third-party code.
They went with usually easy and safe for better or worse.
Humans think comparatively. So, it might help to tell them what CSS replaces.
HTML has many structures: text, images, links, tables, divisions, etc. We'd have to style them in a procedurally-generated layout. We'd learn a GUI or 2D graphics engine. Maybe several, use a cross-platform with its limits, or write our own. At one point, we needed native extensions like Flash.
Learning all of that would be difficult even for an experienced programmer. Whereas, many casual coders have learned CSS fairly easily. Then, it's usually just a matter of twiddling with it until it works right. Also, browsers make the twiddling cycle fast and easy vs testing homebrew GUI's.
So, it's definitely easier most of the time. It's not always what's best. It's a nice baseline for HTML, though.