On New Tricks, Old Hacks, and Web Browsers

I must say, I'm a little curious why I haven't seen mention of this before; a quick Google search didn't turn anything up either. For the last, oh, ten years or so, web designers have been wrestling with all the different browsers, and different versions of each browser, to get their web pages to behave the same - or at the very least, behave relatively well - on all the browsers their users are likely to employ.

The whole time, the W3C has been releasing new standards and new versions of old standards to give web designers new tricks... and every time, the browsers all catch up to the new standards at different speeds, and implement different parts of the standards, or implement them slightly differently.

My question, then, is this: why is there no W3C specification for browser detection? Why can't I use CSS selectors to target certain styles at certain browsers, without resorting to lousy hacks? Even CSS3's new media queries allow me to check the screen size before applying styles, but not whether or not the browser supports, say, CSS3 Of course, it'll take forever for designers to be able to count on all the browsers supporting a new feature like that, but I haven't even seen a proposal.

Today, putting together a design involves pulling up your design in all the browsers, figuring out what works and what doesn't, and then applying hacks specific to each browser. Life would be so much easier in the web design world if instead you could say something like, "if the browser doesn't support CSS3 background properties, apply this style instead."

Suddenly, I don't need to use the hack that hides CSS from IE, and the other hack that hides CSS from everything but IE, and test it, and then find another set of hacks for the Android browser, and another for FireFox, and so on. I can apply styles logically by selecting for specific features, rather than selecting for specific browsers, then having to keep up with the features of each browser - because the features are all I really care about as a designer.

I would much rather "hack" for specific features than specific browsers because it's more intuitive, and it's less work to support multiple browsers and different versions of each browser. The browser makers know what features they support. If I can select for the features I want to use, I don't have to worry about keeping up-to-date with what features are supported by what versions of what browsers.

I'm bringing it up on the W3C mailing list, but I thought I would bring it up here... I'd love to hear your thoughts in the comments!


Home-Made Guitar Work Mat

I made a guitar work mat for about $6 and ten minutes' work. It works perfectly, so I thought I'd share it here.

From Mat

While I was at the grocery store one day, I saw a small selection of shelf/drawer liners. They had a rubber webbing liner, and a self-adhesive cork liner. I bought one of each, I think the cork was $4 and the rubber was $2.

The rubber roll was 12" x 5', and the cork roll was 12" by 4'. 12" is too narrow, so I used two rows of each. I laid the rubber down in two 2' rows, then adhered the cork to it in two perpendicular rows, so that each side would hold the other side together. So far it's been fine, but if the layers start to separate I plan to seal around the edges with tape, probably electrical tape.

This picture shows how the seams on each layer run perpendicular. Half of the mat is rolled up so you can see the cork side against the rubber side.

  • Rubber bottom provides traction on all surfaces -- I have a glass work table and it's rock solid.
  • Cork top provides good traction for your guitar body, but will not mar or scuff the finish in any way.
  • Both the cork and the rubber provide some level of impact protection; a regular cloth doesn't protect your guitar from the hard surface underneath, while the rubber and cork will.
  • Rolls up for easy storage.
  • Costs less than a store-bought guitar work mat, which will probably not have the nice non-skid surface. Cheap & easy to replace if it gets lost or damaged.
If you try this out yourself, please let me know in the comments how it worked out for you!