If the element covers the select box completely I set the select box to display none when I show the overlay and put it back to display block when I hide the overlay (using javascript).
If there is only partial overlap I’m not sure how I would solve it …
I read somewhere some time ago you should use an iframe, but I’m not sure about the details …
Yes, it’s called an iFrame shim. It’s a nasty dirty hack, one that generally must be used if there is No Other Way.
IE6 sets certain elements on a whole new dimension, man. No matter how high of a z-index you put on that menu, the select elements are always higher (and selects aren’t the only ones… also, any new fieldsets who appear will cover anything popping out of a previous fieldset… and then there’s Flash, for which the Shim was first designed).
I think the important thing to have is something that works for people who
-may not have JS enabled (esp IE6 users who have been told to turn their security settings HIGH)
-are using IE6 lawlz
-can’t get the dropdowns to work for any reason (bad coordination, no mouse, using a tablet, mobile, stylus, keyboard, whatever)
Make sure the top-level dropdowns are clickable without JS to a page that offers access to all the sub-categories. This pretty much removes the barriers dropdowns bring anyway, and most people who CAN use the dropdown don’t bother with clicking on the top-level menu.
Normally I try to reorganise stuff so that the selects aren’t in the way: you can do this possibly with an IE-only stylesheet that simply has a different design in that area (check out CSS Zen Garden Egor Kloos’ Gemination styles for IE6). I’ve moved CSS tooltips to different positions for IE6 alone in forms for this reason.