Hi,
I am using superfish in a Joomla template, and it works fine in all
browsers including IE6 and IE8, not in IE7 however. I do not have any
positioned elements, its just that it seems as if the containing li's,
have overflow:hidden, which they don't have. I can see that it works
in IE7 because I have applied small negative margins, so a small piece
of the dropdown actually appears inside the containing <li>
I would provide you with a link, however I prefer to do so privately
if needed.
My code:
<div id="menu">
<ul class="menu sf-menu sf-js-enabled sf-shadow">
<li class="parent item10">
<a class="sf-with-ul" href="/nwg/index.php?
option=com_content&view=category&layout=blog&id=7&Itemid=10">
<span>Visie</span>
<span class="sf-sub-indicator"> ยป</span>
</a>
<ul style="display: none; visibility: hidden;">
<li class="item19">
<a href="/nwg/index.php?
option=com_content&view=category&layout=blog&id=8&Itemid=19">
<span>Strategie</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
CSS:
#menu ul {
list-style-type: none;
padding-left:15px;
}
#menu li {
display:block;
float:left;
padding:2px 0;
height:23px;
}
/* Opacity, exclude IE6 */
html>body #menu ul li {
filter:alpha(opacity=70);
opacity: 0.7;
}
/* Firefox children inherit transparency, IE children don't */
html>body #menu ul li li, x:-moz-any-link {
filter:alpha(opacity=100);
opacity: 1;
}
html>body #menu ul li#current li {
filter:alpha(opacity=70);
opacity: 0.7;
}
#menu li#current {
filter:alpha(opacity=100);
opacity:1;
font-weight:bold;
}
#menu ul li ul {
width:150px;
}
#menu ul li li {
padding-left:10px;
}
/* This output is overriden for all except IE6 */
#menu ul li li {
width:150px;
}
html>body #menu ul li li {
width:inherit;
}
/* IE6 Hack */
#menu ul li { width:42px; }
html>body #menu ul li {
width:auto;
}
html>body .separator {
margin-right:13px;
}
#menu ul li ul {
padding: 0;
margin-top: -10px;
margin-left: -17px;
}
#menu a {
text-decoration:none;
color: white;
font-size:10pt;
}
span.separator {
display:block;
margin-top:-2px;
margin-left:18px;
height: 27px;
border-left:1px solid white;
}
Last but not least, Superfish CSS: (I have only disabled two padding
styles)
/*** ESSENTIAL STYLES ***/
.sf-menu, .sf-menu * {
margin: 0;
padding: 0;
list-style: none;
}
/*.sf-menu {
line-height: 1.0;
}*/
.sf-menu ul {
position: absolute;
top: -999em;
/*width: 10em; /* left offset of submenus need
to match (see below)
*/
list-style: none;
}
.sf-menu ul li {
width: 100%;
list-style: none;
}
.sf-menu li:hover {
visibility: inherit; /* fixes IE7 'sticky bug' */
}
.sf-menu li {
float: left;
position: relative;
height: 23px;
}
.sf-menu a {
display: block;
position: relative;
}
.sf-menu li:hover ul, .sf-menu li#parent:hover ul,
.sf-menu li.sfHover ul {
left: 0;
top: 2.5em; /* match top ul list item height */
z-index: 99;
}
ul.sf-menu li:hover li ul, .sf-menu li#parent:hover ul,
ul.sf-menu li.sfHover li ul {
top: -999em;
}
ul.sf-menu li li:hover ul,
ul.sf-menu li li.sfHover ul {
/*left: 10em; /* match ul width */
top: 0;
}
ul.sf-menu li li:hover li ul,
ul.sf-menu li li.sfHover li ul {
top: -999em;
}
ul.sf-menu li li li:hover ul,
ul.sf-menu li li li.sfHover ul {
/*left: 10em; /* match ul width */
top: 0;
}
/*** DEMO SKIN ***/
.sf-menu {
float: left;
margin-bottom: 1em;
}
.sf-menu a {
/*border-left: 1px solid #fff;*/
/*border-top: 1px solid #CFDEFF;*/
height: 23px;
xpadding: 0 1em; /* ET: DISABLED, IE6 DID NOT LINE OUT
PROPERLY
14-12-2009 */
}
.sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6
applies text colour*/
color: #13a;
}
.sf-menu li {
/*background: #BDD2FF;*/
}
.sf-menu li li {
background: #2ea2da;
filter: alpha(opacity=70);
opacity: 0.7;
}
.sf-menu li li li {
background: #9AAEDB;
}
.sf-menu li:hover, .sf-menu li.sfHover,
.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
/*background: #CFDEFF;*/
outline: 0;
}
/*** arrows **/
.sf-menu a.sf-with-ul {
xpadding-right: 2.25em; /* ET: DISABLED, IE6 DID NOT LINE OUT
PROPERLY 14-12-2009 */
min-width: 1px; /* trigger IE7 hasLayout so spans position
accurately */
}
.sf-sub-indicator {
position: absolute;
display: block;
right: .75em;
top: 1.05em; /* IE6 only */
width: 10px;
height: 10px;
text-indent: -999em;
overflow: hidden;
background: url('../images/arrows-ffffff.png') no-repeat
-10px
-100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
}
a > .sf-sub-indicator { /* give all except IE6 the correct values */
top: .8em;
background-position: 0 -100px; /* use translucent arrow for modern
browsers*/
}
/* apply hovers to modern browsers */
a:focus > .sf-sub-indicator,
a:hover > .sf-sub-indicator,
a:active > .sf-sub-indicator,
li:hover > a > .sf-sub-indicator,
li.sfHover > a > .sf-sub-indicator {
background-position: -10px -100px; /* arrow hovers for modern
browsers*/
}
/* point right for anchors in subs */
.sf-menu ul .sf-sub-indicator { background-position: -10px 0; }
.sf-menu ul a > .sf-sub-indicator { background-position: 0 0; }
/* apply hovers to modern browsers */
.sf-menu ul a:focus > .sf-sub-indicator,
.sf-menu ul a:hover > .sf-sub-indicator,
.sf-menu ul a:active > .sf-sub-indicator,
.sf-menu ul li:hover > a > .sf-sub-indicator,
.sf-menu ul li.sfHover > a > .sf-sub-indicator {
background-position: -10px 0; /* arrow hovers for modern browsers*/
}
/*** shadows for all but IE6 ***/
.sf-shadow ul {
background: url('../images/shadow.png') no-repeat bottom right;
padding: 0 8px 9px 0;
-moz-border-radius-bottomleft: 17px;
-moz-border-radius-topright: 17px;
-webkit-border-top-right-radius: 17px;
-webkit-border-bottom-left-radius: 17px;
}
.sf-shadow ul.sf-shadow-off {
background: transparent;
}