+1  A: 

I'm not totally understanding the setup that's leading to the problem, but you might want to explore the useIFrame property of the YUI Autocomplete object -- it layers an iframe object beneath the autocomplete field, which allows the field to then float above the objects that are obscuring it in IE's buggy layout.

http://developer.yahoo.com/yui/docs/YAHOO.widget.AutoComplete.html#property_useIFrame

But the docs say that this matters in 5.5 < IE < 7, so this might not be the issue you're experiencing. So again, without totally understanding the setup you're working with, you might also want to try to experiment with various z-index values for the autocomplete field and the surrounding block-level elements.

delfuego
Thanks, the iframe trick actually has solved some problems in IE6 for me, but doesn't appear to influence this issue.
Jeremy Wadhams
Sorry about that -- did you give the z-index property a go? Based on the screenshot you posted after my answer, it looks like that's likely to be the case. I think that there's a developer toolbar for IE that will let you see the z-index of various elements...
delfuego
+1  A: 

Make sure the z-index of the auto-complete div is a larger number than the divs that constitute the rounded corner box. Microsoft puts the z-index of the top elements to 20000 or 100000 I believe. Might be wise to do the same.

Justin Bozonier
+4  A: 

Jeremy,

Sorry for this being so late, but hopefully the answer will be of use to you in a future project.

The problem here is that IE creates a new stacking order anytime there is an element with position:relative, meaning that z-index itself is not the only controlling factor. You can read more about this here:

http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html

To solve the problem, if I'm understanding your problem correctly, apply position:relative to the container that wraps your whole autocomplete implementation (and then position:absolute to your results container). That should create an independent stacking order in IE for those elements that allows them to float over the other position:relative stacks that appear later in the page.

Regards, Eric

Eric Miraglia
+1  A: 

I had a similar problem to this, I fixed it by basically just changing z-index for the different divs. Just setting higher number for each div in the order it should display.

campo
A: 

Jeremy, I have exactly the same problem. I tried Eric's solution but it doesnt seem to make any difference. Did you fix your problem? If so, could you please post the solution.

Thanks

Aravindan R
On your site, I loaded up the JS Console from Jupiter (jupiterit.com/console) , and applied these three settings to fix the problem: YAHOO.util.Dom.get('header').style.zIndex = 50; YAHOO.util.Dom.get('content').style.zIndex = 40; YAHOO.util.Dom.get('header').style.position="relative";It should be easy enough to apply these into the CSS of your page.
Jeremy Wadhams
Your solution did the trick. Thanks. I really appreciate it.
Aravindan R
+1  A: 

The working solution I finally implemented was based on reading this explanation over and over again.

In the underlying HTML, all of the blue rounded corner elements are DIVs, and they're all siblings (all children of the same DIV).

The z-index of the autocomplete div itself (which is the great-great-grandchild of the rounded corner container div) can be arbitrarily high, and it won't fix this issue, because IE was essentially rendering the entire contents of the search box below the entire contents of the "Vital Stats" box, because both had default z-index, and Vital Stats was later in the HTML.

The trick was to give each of these sibling DIVs (the blue rounded corner containers) descending z-indexes, and mark all of them position:relative. So the blue div that contains the search box is z-index:60, the "Vital Stats" box is z-index:50, "Tags" is z-index:40, and so on.

So, more generally, find the common ancestor of both the element that is getting overlapped and the element that is overlapping. On the immediate children of the common ancestor, apply z-indexes in the order you want content to show up.

Jeremy Wadhams