Please check out my main blog, Obi-Wan Kimberly Is Your Only Hope, where I write about web development and technical management!


Kimberly Blessing Hi, my name is Kimberly Blessing. I'm a computer scientist, Web developer, standards evangelist, feminist, and geek. This is where I write about life, the Web, technology, women's issues, and whatever else comes to mind.

Also by Kimberly

Presentations Blog Archive

CSS & Troubleshooting IE6

This past Saturday I gave my CSS Summit presentation on CSS & Troubleshooting IE6. Feel free to download the presentation slides to check out what I covered!

In the chat room, a number of questions and comments came up regarding the use of CSS hacks to address IE. I don’t know how many people were in the camp of “all hacks are bad, all CSS must validate!” versus “who cares, use all the hacks you want”, but I was put on the spot and asked for my two cents. I said something to the effect of, “Aiming to write CSS which validates is a great goal and perfectly achievable on your personal site, but when putting together a site for work or for a client, especially a large site, you may find that using hacks is easier to write and read, and will scale better over time — so long as you plan a way out.” I think that resonated with some of the folks in attendance, who have always felt that to honor the Web Standards cause, a developer always had to follow the best practices and have valid code at all times.

So, just to reiterate, no, you don’t have to have valid markup and style sheets all of the time. In fact, there are times where you’ll intentionally code something not valid — whether it’s the use of the target attribute for an anchor to make sure a link opens in a new tab/window, or whether it’s the application of a hack in your CSS, so a future developer doesn’t have to look through multiple CSS files to figure out what you did. I think this is perfectly acceptable, provided you execute the hack consciously. At almost all of the large companies where I’ve worked*, we’ve had to use hacks or deliver non-valid code. It’s just a fact of life. It’s what you know about your non-validating code, what you plan for**, that matters.

*At PayPal, we attempted to maintain separate IE6 and IE7 style sheets, called with conditional comments; this caused developers to have to write additional CSS in many cases, as the CSS architecture included a global CSS file, one or more product/flow/page-specific CSS files, and then these IE-specific CSS files. Due to the cascade, overwriting one style in the IE-specific CSS file sometimes meant writing additional lines of CSS to restore a style — unless you could ensure that tweaking selectors in the other CSS files to make them more specific would be a better fix, without breaking any other pages… perhaps you see where I’m going with this? With over 100 developers potentially working on a bit of code, decoupling IE-specific styles created a nightmare situation, which inline hacks would have solved in a way that would have been easier to read and easier to maintain.

**On the other hand, at CIM, we have no coding standards (yet), so each developer appears to be addressing browser-specific issues in whatever way they want. I’ve seen multiple hacks used in our code and backing them out later is going to be a major challenge. When you do use hacks, make sure everyone on the project/working on the site uses the same ones!

So, with that, you have my permission to use hacks and write non-validating code — just make sure you have a good reason for doing so, in case someone comes asking why you did it. ‘Cause I won’t back you up if you don’t have solid justification!

SxSW podcasts!

Sure, this comes a little late, but better late than never, right?

The good folks at the SxSW Festival have finally posted the podcasts for the panels that I was a part of. The following links will take you straight to the MP3s:

SxSW notes, for you and for me

(This post originally started on March 13, 2006 at 10:36 AM CST)

The crazy thing about SxSW is that you get busy and don’t have time to do the things you mean to do. It’s not a bad thing, it’s just the way it is. So you go with the flow.

Anyway, I wanted to post notes, cool quotes, and links to folks I’ve met (or reunited with). I’ll update this whenever I have time… maybe not until after I get home!

So far, here are some new folks that I’ve met:

There are many people here that I already knew (virtually) but am meeting for the first time:

  • Chris Kaminski, a fellow WaSP member, and the guy who saved me from having to take time to write some scripts for the new site when I was still busy working on templates and design issues
  • Drew McLellan, another fellow WaSP and creator of 24ways
  • Kazuhito Kidachi, yet another fellow WaSP, whose done a fine job of translating and testing for the group

And I’ve gotta call out some of my AOL and ex-AOL friends:

  • Tom Crenshaw, fellow hockey fan, Corrado enthusiast, and author of the foreward to the Flash 8 Bible
  • JoRoan Lazaro, creator of the AOL Running Man

There are some really good pictures up on flickr from various activities, too:

And all of my photos are up on Flickr as well.

And here are the slides from the panel I did with my AOL pals!