Hacker News new | ask | show | jobs
by chrismorgan 1684 days ago
Most CSS bugs just make things a bit uglier, rather than completely breaking your entire site.
2 comments

On one of my sites it had made most important button "add to cart" unclickable
You might be surprised how often a CSS bug will break an entire site. I've seen it many times in my decades.
Oh, I’ve got a good one about this.

Back in 2000, I was living in a new city, and cold-calling graphic design firms. At the time, most of the web looked like utter ass, and my feeling was that it made more sense to try to be the in-house developer for designers, rather than try to bring design to web development firms.

So I put together a resume with my personal URL placed prominently across the top, and knocked on the door of every graphic design firm in Portland. I met a bunch of confused designers, and didn’t get a single call or email back. I noticed in passing — and importantly to this story — that the whole industry was still wedded to Macs running the non-memory-protected OS 8. Months passed and my savings trickled away.

Eventually out of desperation I took a job at a shipping company that was rewriting their in-house software suite. I noticed that they had a couple dusty Macs in the corner for browser testing that they never bothered doing, and thought it might be amusing to see how my site loaded.

It turned out that there was an error in the CSS engine in MSIE Mac that crashed the system. Not the browser, the entire computer. Click, smash. I realized with horror that I had spent months crashing the computers — along with the unsaved work — of every graphic designer in Portland.

Similar story, I made an IE6 PNG transparency "fix" that used some IE specific image filter language (I can't even remember what anymore).

On some computers without enough memory the "fix" crashed the entire OS with a bluescreen (no idea what the bug was because I didn't have windows, and because... well it's windows, I think I developed it in WINE!). I only found this out through a client complaining about their clients computers bluescreening when visiting their site... this was probably 2008-ish, so not exactly peak IE6, but it was the phase where a bunch of orgs still forced everyone to use it under the ridiculous premise of "security".

That's fantastic! I have the opposite story - we sold opinionated Mac software bundles, and one of the perks was we could use the latest Apple-only Safari CSS tricks (this was before Chrome forked from WebKit and Safari was actually leading the way with stuff like CSS transitions/animations and Canvas). Microsoft released free VMs for browser testing in IE and I tried it for kicks, and indeed, our page would literally crash IE when loaded (of course Windows had protected memory so the OS wouldn't crash). We wore it as a badge of honor.
Oh, it can definitely happen. In earlier drafts of the current iteration of my website, I used `mix-blend-mode: multiply` liberally (most significantly for the left sidebar), and discovered that in Chromium under Windows anything you used it on would stop rendering after a few thousand pixels (4096 or 8192 or something, my memory’s fuzzy and I don’t have the bug IDs handy), meaning that most of some of my articles were just missing. And that wasn’t even the only debilitating bug I found in Chromium in the process. So I regretfully removed some of the clevernesses that did produce better results in Firefox, because I found Chromium so terribly buggy in some of the slightly-newer stuff. (My general experience and impression is that Chromium ships fast with lots of bugs that tend to linger, and Firefox ships more slowly with decidedly fewer bugs.)

But still, most CSS bugs aren’t so severe.

Your bug reported 16,384px after accounting for device scale: https://bugs.chromium.org/p/chromium/issues/detail?id=992398

I knew it'd be this number right away, because it's also the maximum screenshot height thanks to being the maximum height of a surface in Chromium (Actually last I checked this technically depends on the GL backend used, but 16kpx seems common)

4096 was a common max GL texture size on low end hardware.