Hi
this seems due the IE z-index bug
see
http://verens.com/archives/2005/07/15/ie-z-index-bug/

olivier

jon randahl wrote:
First, let me say thank you to Joel for making the new CSS for
Superfish so easy to configure now! All those comments make such the
difference!

and Second, here's my dilema:

We have a site, first thing that loads is a lovely flash movie which
resides in the main container below the horizontal navigation which
has a single dropdown from one choice. Once the movie has played the
user is presented with a static page with an additional nav on the
side (totally seperate from hNav) and a static hero shot image all
below the horzontal nav at the top. The user can navigate through the
site using the main horizontal nav at any point, either during the
flash movie or after. It all works fine, exactly as planned, in
Firefox; unfortunately the dropdown menu shows partially underneath
the main container if viewed in IE (both 6 & 7).

Having trolled through the differing posts about the above topics, I
have tried everything I can to get this to work!
Alas, I have failed.
I am begging anyone to please lend a hand and see where I have gone
wrong!

I am pasting the css I'm using, please feel free to comment,
postulate, or slam it all.

Thanks in advance!

Jon
<code><pre>
/--------------------------------------------------------------------------------------------------/
the style calls held in the template:
<link rel="stylesheet" type="text/css" href="/_assets/css/main.css"
media="screen" />
<link rel="stylesheet" type="text/css" href="/_assets/css/
thickbox.css" media="screen" />
<link rel="stylesheet" type="text/css" href="/_assets/css/
supafish.css" media="screen" />

/--------------------------------------------------------------------------------------------------/
Structural CSS pertaining to elements concerned:

#header {
        position: absolute;
        top: 0;
        left: 5px;
        width: 850px;
        height: 56px;
        margin: 0; padding: 0;
}

#content {
        position: absolute;
        top: 56px;
        left: 275px;
        width: 580px;
        height: 580px;
        margin: 0; padding: 0;
}


#hdrNav {
        position: absolute;
        top: 0;
        right: 0;
        width: 490px;
        height: 56px;
        z-index: 1;
}

#hdrNav li {
        display: inline;
        position: relative;
        z-index: 1;
}



#hdrNav li a.toplevel {
        display: block;
        float: left;
        width: auto;
        height: 56px;
        line-height: 56px;
        margin: 0; padding: 0;
}

#hdrNav li img {
        display: block;
        float: left;
        width: 7px;
        height: 56px;
        margin: 0; padding: 0;
}

#hdrNav li a#n1-home { width: 63px; background: #fff url('/_assets/img/
navigation/home.gif') 0 0 no-repeat; }
#hdrNav li a#n1-avby { width: 90px; background: #fff url('/_assets/img/
navigation/availability.gif') 0 0 no-repeat; }
#hdrNav li a#n1-lctn { width: 76px; background: #fff url('/_assets/img/
navigation/location.gif') 0 0 no-repeat; }
#hdrNav li a#n1-amts { width: 121px; background: #fff url('/_assets/
img/navigation/amenities.gif') 0 0 no-repeat; }
#hdrNav li a#n1-news { width: 62px; background: #fff url('/_assets/img/
navigation/news.gif') 0 0 no-repeat; }
#hdrNav li a#n1-cntc { width: 70px; background: #fff url('/_assets/img/
navigation/contacts.gif') 0 0 no-repeat; }

#hdrNav li a#n1-avby ul#n1-abvy-sub { position: relative; z-index:
99; }

#hdrNav li a:hover#n1-home,
#hdrNav li a:hover#n1-avby,
#hdrNav li a:hover#n1-lctn,
#hdrNav li a:hover#n1-amts,
#hdrNav li a:hover#n1-news,
#hdrNav li a:hover#n1-cntc { background-color: #eef3f7; }

/--------------------------------------------------------------------------------------------------/
Supafish CSS: (with changes made)

/* This file is commented in great detail for educational purposes.
There is also
 * an uncommented version for use production use here:
 * http://users.tpg.com.au/j_birch/plugins/superfish/superfish.css
 */

/**************** ESSENTIAL STYLES ***************/
/* This first group of styles are most important for the function of
Superfish.
 * The more cosmetic styling rules are grouped together below under
the heading
 * ORIGINAL SKIN.
 *
 * Note that this CSS file will create the kind of menu demonstrated
on the main
 * page of the Superfish documentation, ie. top tier of nav is
horizontal, with
 * subsequent tiers vertical.
 */

/* remove any default styles */
.nav, .nav * {
        margin:0;
        padding:0;
        list-style:none;
}

/* top ul.nav element */
.nav {
        z-index:99;
        line-height:1.0; /* makes calculating the 'top' value for first
submenu easier */
}

/* nested submenu ul elements */
.nav ul {
        position:absolute; /* remove from flow and allow positioning */
        top:-999em; /* hide submenu in screen-reader and search-engine
friendly way */
        width:88px; /* VARIABLE. Must have a width for menu items to inherit.
Use ems so font scaling does not break design*/
}
/* submenu items */
.nav ul li,
.nav a { /* this affects top level anchors too */
        width: 100%;/* stretch submenu items to width of submenu ul width
(see .nav ul rules above) */
        }

/* all li elements */
.nav li {
        z-index:99; /* ensure submenus appear above other page items.
Increase if needed, but do not exceed thickbox overlay z-index! */
        float:left; /* must float all li elements. Vertical submenu items are
restrained by parent ul width (see .nav ul rules above) */
        position:relative; /* make child submenu ul position relative to
parent li */
}

/* all anchor elements */
.nav a {
        display:block; /* make IE6 obey width when text-indent is used */
}

/**** Position of second tier of nav ****/
.nav li:hover ul, /* this pure CSS hover is overridden by
the .superfish rules below which are applied only when JavaScript is
available. This way, the menu degrades to regular CSS dropdown when
JavaScript is unavailable */
ul.nav li.sfHover ul /* this is the familiar IE6 hover support. With
Superfish, all browsers use this rule when JS is available. This is
because the JS needs to be able to control hide and reveal delays and
animations without the pure CSS rule intruding. Note the tag selector
ul.nav instead of just .nav - this gives it the most specificity of
all and makes it trump all other positioning rules, including
the .superfish overrides below */
{
        left:-1px; /* position first submenu directly under parent li */
        top:2.7em; /* VARIABLE. This is calculated by adding 1em text height
to top and bottom anchor element padding (original skin: .75em top + .
75em bottom + 1em text height = 2.5em) */
}

/**** Position of third tier of nav ****/
 /* Note that this rule must appear here in the code order in order
for it to override previous positioning rules so that this and
subsequent nested submenus still remain hidden when the parent submenu
is shown. Do not group these selectors with other top:-999em rules */
.nav li:hover li ul,
.nav li.sfHover li ul {
        top:-999em; /* hide submenu in screen-reader and search-engine
friendly way */
}
/* DO NOT attempt to group these selectors with similar earlier rules.
The code order is important so the rules override previous ones
correctly */
.nav li li:hover ul, /* this pure CSS hover is overridden by
the .superfish rules below which are applied only when JavaScript is
available. This way, the menu degrades to regular CSS dropdown when
JavaScript is unavailable */
ul.nav li li.sfHover ul /* this is the familiar IE6 hover support.
With Superfish, all browsers use this rule when JS is available. This
is because the JS needs to be able to control hide and reveal delays
and animations without the pure CSS rule intruding. Note the tag
selector ul.nav instead of just .nav - this gives it the most
specificity of all and makes it trump all other positioning rules,
including the .superfish overrides below */
 {
        left:83px; /* VARIABLE. Offset subsequent submenus to the right by
the amount you set for the submenu widths (see .nav ul rules above) */
        top:-1px; /* position subsequent submenus horizontally aligned to
parent li */
}

/**** Position of fourth tier of nav (not used on main demo page. You
could delete this block for a three tiered nav) ****/
 /* Note that this rule must appear here in the code order in order
for it to override previous positioning rules so that this and
subsequent nested submenus still remain hidden when the parent submenu
is shown. Do not group these selectors with other top:-999em rules */
.nav li li:hover li ul,
.nav li li.sfHover li ul {
        top:-999em; /* hide submenu in screen-reader and search-engine
friendly way */
}
/* DO NOT attempt to group these selectors with similar earlier rules.
The code order is important so the rules override previous ones
correctly */
.nav li li li:hover ul, /* this pure CSS hover is overridden by
the .superfish rules below which are applied only when JavaScript is
available. This way, the menu degrades to regular CSS dropdown when
JavaScript is unavailable */
ul.nav li li li.sfHover ul /* this is the familiar IE6 hover support.
With Superfish, all browsers use this rule when JS is available. This
is because the JS needs to be able to control hide and reveal delays
and animations without the pure CSS rule intruding. Note the tag
selector ul.nav instead of just .nav - this gives it the most
specificity of all and makes it trump all other positioning rules,
including the .superfish overrides below */
 {
        left:83px; /* VARIABLE. Offset subsequent submenus to the right by
the amount you set for the submenu widths (see .nav ul rules above) */
        top:-1px; /* position subsequent submenus horizontally aligned to
parent li */
}

/**** Position of further tiers of nav ****/
/* To add further tiers, you need copy the previous block of code
(everything back until the "Position of fourth tier of nav" comment)
and paste it in here. Then add an extra li just after .nav in each of
the pasted selectors. So the new block will differ from the copied
block in the same way that the block for the fourth tier differs from
the block for the third tier.*/


/**** Very important ****/
/* this negates the pure CSS hovers so submenu remains hidden and JS
controls when and how it appears. This is in turn is overridden by
the .sfHover rules above as they have greater specificity */
/* notice there are three selectors here. You need three for a four
tier menu system. If you had a five tier system you would copy the
last selector of these three and paste it below to create a fourth
selector and add another li just after the .superfish part. On the
other hand if you only had a three tiered menu you could delete the
third line here and save some file size.*/
.superfish li:hover ul,
.superfish li li:hover ul,
.superfish li li li:hover ul {
        top: -999em; /* hide submenu in screen-reader and search-engine
friendly way */
}

/******************** ORIGINAL SKIN ******************/
/*
 * The CSS below is my attempt to extract most of the stuff you need
to change in order
 * to reskin the menu with the appearance you require. However,
certain rules above
 * (indicated with the word "VARIABLE") may also need to be altered to
suit the width
 * and height of your menu items and submenus. For example, if you
need wider submenus
 * eg: .nav ul { width:12em} then you will need to also apply that
value
 * to the left offset of any deeper nested submenus, eg:
 * .nav li li:hover ul,
 * ul.nav li li.sfHover ul {
         left:12em; top:-1px;
   }
 *
 * Other than that, most of the cosmetic stuff is below:
 */

.nav {
        float:left; /* necessary if you don't want this element to collapse
*/
        margin-bottom:1.5em; /* add space beneath nav. Purely cosmetic */
        }
.nav li.sfHover {
        width:90px; /* affects top level menu items only, as nested li
elements have width 100% of their ul parent (see .nav ul rules
above)*/
}
.nav a {
        color: #86959c;
        padding: .25em 0; /* note that the top and bottom padding will affect
the 'top' value (marked with the word "VARIABLE") of the second tier
of nav (see "essential rules" above and alter accordingly) */
        text-decoration:none;
        text-indent: 2em;
}
.nav li:hover, .nav li.sfHover,
.nav a:focus, .nav a:hover, .nav a:active {
        background:#eaf5f6; /* hover highlight */
}
.nav li li {
        border:1px solid #86959c;
        border-bottom: none;
        background:#eaf0f6; /* slightly darker shade for nested submenus */
        width: 83px;
}
.nav li li.last {
        border:1px solid #86959c;
        width: 83px;
}

.nav li li li {
        background:#eaf0f6; /* slightly darker shade for nested submenus */
}

</pre></code>

thank you for any help!



Reply via email to