easy to get into trouble for sure.
flexbox made things so much easier, but still hard. There are just too many rules to keep in your head about
display
andposition
and how they affect other attributes. And the box model… wow. margin, border, padding, content, but he attribute isbox-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.
Man I remember the days before flexbox and with browser specific bugs. CSS still screws with me but nothing like in the 2000s.
I remember before CSS was released it was supposed to be such a panacea. And then everyone said that CSS 3 was going to fix everything.
And now we are here saying the human created system isn’t the problem it is the humans that are the problem.
Semiconductors are the aliens. They are ruling us now.
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.
with CSS grid, and now subgrid (finally, chrome), layout with CSS has never been more pleasant
It’s really not, though. This is only true if you’re bad at CSS, which basically can be said about anything.
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.
Or simply different styles and/or skill levels were mixed. I’m currently sifting through a code base that I know for a fact started out goodish, but through multiple team reorgs and lax standards/tight deadlines it devolved into a hot mess. A major contributor being that most of the devs were inexperienced in the framework and just did what they thought was right.
Even supposedly senior devs often have a “I know best” mentality and when they get their hands on a code base do it their way, with the result that after something went through a couple of hands you have a mess of different coding styles and even different software design choices in the same code base, or in other words, and unmaintainable mess.
Yes, it’s that way if you include bad CSS. What isn’t the same as you being bad with it.
“it’s not that hard” just announces to the world that you haven’t tried to do anything hard with it.
I work with WordPress. It doesn’t get much harder than that.
What do you consider difficult to do with CSS that wouldn’t also be difficult without it?
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.
Pff, just define your own cascade with @layers :)
Best advice I can give: Don’t use CSS directly, use a pre-processor like SASS/SCSS. It really helps keeping things sane and somewhat organized.
As someone who is bad at CSS, I can confirm at least half of your statement. ;p
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).
Trying to fix padding on an element that has “pad-left” and “padding” at the same time but you don’t realize it
The way to fix a pad-bottom is simple! Just give the next element a negative margin-top!
I feel like I’ve actually done that, but it was only because I had to have the padding or else everything broke
I’m glad I’m not alone 😔
That’s no big deal, just use a linter. It’s also pretty obvious what the priority is in the inspector.
i hate that i understand this
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.
… effortless casting could be a negative depending on who ya ask.
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().
Nah, in real CSS, the window would overflow and bring down the whole house.
I am struggling with using flex for the first time and holy cow do i feel this
Yeah, because anything that isn’t a big new JavaScript framework is just way too complicated
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.