Recently, I floated the idea that perhaps Safari should be intentionally buggy in parsing CSS, in order to leave a backdoor for web designers. Reaction was decidedly mixed. Of those who thought it was a good idea, there were a wide variety of suggested implementations. Of those who thought it was a bad idea, arguments fell broadly into two categories:
We had enough buggy CSS rendering in Netscape 4; modern browsers should render perfectly.
This is true, but it is not an argument against my proposal. My proposal was about bugs in CSS parsing, not CSS rendering. Obviously Safari should properly render all the CSS it finds; the only question is whether it should intentionally not find some of it.Web designers should just code to standards and not make concessions for buggy browsers.
Um, OK, you’re certainly free to do that on your own site. Meanwhile, over here in the real world, half a million people have downloaded Safari in the last 48 hours, I’m getting 1000 Safari visitors a day, and my site looks like this.
Regardless, it seems unlikely that an intentional backdoor will be implemented. Given the situation, I did was any self-respecting over-achieving web designer would do: I ran through hundreds of CSS import tests, found 18 cases that affect Safari, tested each of them in 27 browsers, and made a table of the results.
Here are 7 newly-discovered ways to hide CSS from Safari:
The other 11 cases are instances where Safari will render CSS that other browsers will not, which could also be useful.
These techniques are in addition to previously-discovered hacks, any of which can be used to hide CSS from Safari:
Out of all of that, surely someone can come up with a combination hack that only hides CSS from Safari, and no other browser. If you find it before I do, please let me know.
Update: Found: Safari Spacer Hack.

