Scott Povlot wrote:

> Just wondering how you determined this (so that I can learn a little 
> for next time).

Sounds like I simple enough question, but I'm not sure if I can give you
a good answer.

The fact is: I see such 'stacking' bugs so often that I usually just
apply one of a few "normal" fixes. Then I test to see if the chosen fix
works as intended, and cross-test in other browsers to avoid disturbing
them.
- Thorough testing is always the most important part - regardless of
what fix is used. Quite often the cure is worse than the disease since
we are using software-bugs to kill software-bugs, so it is also
important that we get rid of all _unnecessary_ fixes in the process.

When a non-positioned element is disappearing in IE6, it is often in the
right position but one or more of the element's layers are partly or
completely hidden behind the background-layer of whatever element the
element is supposed to appear on top of.
- It is as if IE defaults to a negative 'z-index' for one or more of the
element's layers[1]. (That illustration[1] doesn't really matter in your
case, but I find it useful as part of a mental model when IE starts
stacking the layers separately.)

I haven't found good and complete documentation for that 'stacking' bug
in IE6 (and older versions),  but plenty of cases - with and without
working fixes.
- The bug is supposed to have been fixed in IE7, but in reality the
'stacking' problem is only patched up so it doesn't show up in IE7 in
those cases where IE6 most often fails.
IE7 has a number of "stacking" bug variants of its own, so the patches
aren't very good. Work in your case though.


Regarding fixes...

The first thing I check is if the element should have a 'hasLayout'[2]
trigger, or not. Triggering 'Layout' keeps the element layers together,
so it either appears with all layers intact, or not at all - as in your
case.
- Floats already triggers 'Layout', so no use adding another trigger to
the element itself in your case.
- Often it helps to add a 'hasLayout'[2] trigger to the parent element -
the container, but triggering the 'Layout' bug doesn't work well in all
layouts and more fixes may be necessary.
I didn't check such a "parental" fix in your case.

The next thing to check is if affecting 'stacking' directly by adding
'position: relative' will persuade IE/win to stack all layers of an
element with a 'z-index' default of zero - which should be the default
anyway if it weren't for those 'stacking' bugs.
This is the fix I tested first in your case, and - as expected - found
it to work just fine.
- On very rare occasions a 'z-index' above zero must be added for this
to work.
No need for that in your case.
- Sometimes we may also have to add 'position: relative' to the parent
element, in order to prevent more 'stacking' related bugs. This is where
things can become really tricky at times, as we may trigger one of IE6'
many 'position' bugs.
I didn't check such a "parental" fix in your case.


Hope the above is of some use.
Maybe someone else have links to proper documentation.

regards
        Georg

[1]http://www.hicksdesign.co.uk/boxmodel/
[2]http://www.satzansatz.de/cssd/onhavinglayout.html
-- 
http://www.gunlaug.no
______________________________________________________________________
css-discuss [EMAIL PROTECTED]
http://www.css-discuss.org/mailman/listinfo/css-d
IE7 information -- http://css-discuss.incutio.com/?page=IE7
List wiki/FAQ -- http://css-discuss.incutio.com/
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/

Reply via email to