flexbox made things so much easier, but still hard. There are just too many rules to keep in your head about display and position and how they affect other attributes. And the box model... wow. margin, border, padding, content, but he attribute is box-sizing and it has border-box and content-box, but not the others.
IINM it was written by people who came from print media (just like HTML) and that stuck.
How do you remember those days and not think things are way better now? CSS can still have weird behavior, but it's nothing compared to doing everything through one off html attributes and trying to position things with float hacks and dealing with browser specific bugs. Despite its problems, as someone who has made websites through every Internet era, things have gotten better and better.
unless you inherit a large base written by someone who is bad at it where their approach seemed to be to write new bad rules in attempt to cover up previous bad rules and so on. we all know how supportive employers are at addressing technical debt. (site redesign cant come soon enough)
Not sure about your particular situation but there’s also the possibility that the bad CSS was good CSS when it was written and over time that got superseded by advancements in both technology and practice.
As someone that has gone through some of the available online tutorials like freecodecamp, and has no real world experience, especially in a team setting, I think I agree with you. I wouldn't say it's hard, but I do feel it's unnecessarily complicated in some areas. Some naming conventions are unintuitive, the cascading inheritance can get confusing especially with multiple hands working on something, and from my experiences, there's minimal if any effort put into best practices, so everyone does things a little different.
Totally agree with this. I was trying to do CSS theming on my personal website on SDF to try and make it look nicer but I gave up and just went without it because it never worked right. It's a crappy website anyway with a lot of problems (doesn't have correct margins so on anything outside specific resolutions it looks wonky).
Out of the 3 main web languages I use to develop my games (HTML, CSS, and JavaScript), CSS is definitely my least favorite.
HTML is relatively simple and understandable such that bugs rarely get introduced into my HTML code.
JavaScript, while janky and not known for good performance, will work without too much trouble compared to other languages (I'm looking at you, C++). No segfaults, effortless type casting, intuitive syntax, and debugging is fairly easy. Worst part is editing HTML and styles with JavaScript, it just feels clunky, to both the programmer and the CPU.
And then there's CSS. Despite being a language dedicated to making things look pretty, it's just an unintuitive list of properties on HTML classes. So many times it takes way too long to do a simple thing like center text in a div when there is other text that is meant to not be centered. But I guess I'm not using it to its fullest potential, as I recently came across an article that listed many pretty graphics, often animated, that was purely made using CSS.
I'm of the opinion that it's a positive. Often I use "string" + number to access HTML elements and it just works. I can even use it to concatenate arrays.
Meanwhile, when I try to debug in C++ with cout statements, half the time it doesn't even do anything even though I use std::to_string().
Somehow I doubt a lot of these opinions are steeped in the experience of building an HTML layout using tables, transparent gifs and inline width attributes. Shit was wild before CSS.