如果背景是透明的,则垂直菜单在IE8中不起作用

时间:2010-11-24 21:22:43

标签: jquery css

这是我第一次使用的网站:www.olgoya.com

问题是除了IE8之外的所有主要浏览器都会在'投资组合'项目上显示鼠标时显示子菜单。我能弄清楚的是问题在于父对象的不透明度设置,如果我删除它,IE也能够显示子菜单。

父对象格式:

 ul, li{text-align:right; margin:0; padding:0; list-style:none;}
#menubg{position:absolute;top:1px;width:130px;left:25px;background:#000;opacity:0.5;filter:alpha(opacity=50);-khtml-opacity: 0.5;-moz-opacity: 0.5;bottom:1px;z-index:3}

垂直菜单格式:

/*
Author: Craig Erskine
Description: Dynamic Menu System - Vertical
*/

ul#navmenu-v,ul#navmenu-v li,ul#navmenu-v ul {
 width: 130px; /* Menu Width */
 margin: 0;
 list-style: none;
}

ul#navmenu-v li { float: left; position: relative;  width: 100%; }
ul#navmenu-v li.iehover { z-index: 1000;/* IE z-index bugfix */ }

ul#navmenu-v ul {
 display: none;
 position: absolute;
 top: 0;
 left: 100%;
 z-index: 9999;
}

/* Root Menu */
ul#navmenu-v a {
/*
 border-top: 1px solid #FFF;
 border-right: 1px solid #FFF;
*/
 padding: 6px;
 display: block;
/*
 background: #DDD;
 color: #666;
 font: bold 11px Arial, sans-serif;
*/
 text-decoration: none;
 height: 1%;
}

/* Root Menu Hover Persistence */
ul#navmenu-v a:hover,ul#navmenu-v li:hover a,ul#navmenu-v li.iehover a {
 background: #444;
/*  color: #FFF;
 border-right: 1px solid #000;
 border-left: 5px solid #000;
*/
}

/* 2nd Menu */
ul#navmenu-v li:hover li a,ul#navmenu-v li.iehover li a {
 float: none;
 background: #000;
}

/* 2nd Menu Hover Persistence */
ul#navmenu-v li:hover li a:hover,ul#navmenu-v li:hover li:hover a,ul#navmenu-v li.iehover li a:hover,ul#navmenu-v li.iehover li.iehover a {
 background: #999;
}

/* 3rd Menu */
ul#navmenu-v li:hover li:hover li a,ul#navmenu-v li.iehover li.iehover li a {
 background: #999;
}

/* 3rd Menu Hover Persistence */
ul#navmenu-v li:hover li:hover li a:hover,ul#navmenu-v li:hover li:hover li:hover a,ul#navmenu-v li.iehover li.iehover li a:hover,ul#navmenu-v li.iehover li.iehover li.iehover a {
 background: #666;
}

/* 4th Menu */
ul#navmenu-v li:hover li:hover li:hover li a,ul#navmenu-v li.iehover li.iehover li.iehover li a {
 background: #666;
}

/* 4th Menu Hover */
ul#navmenu-v li:hover li:hover li:hover li a:hover,ul#navmenu-v li.iehover li.iehover li.iehover li a:hover {
 background: #333;
}

/* Hover Function - Do Not Move */
ul#navmenu-v li:hover ul ul,ul#navmenu-v li:hover ul ul ul,ul#navmenu-v li.iehover ul ul,ul#navmenu-v li.iehover ul ul ul { display: none; }
ul#navmenu-v li:hover ul,ul#navmenu-v ul li:hover ul,ul#navmenu-v ul ul li:hover ul,ul#navmenu-v li.iehover ul,ul#navmenu-v ul li.iehover ul,ul#navmenu-v ul ul li.iehover ul { display: block; }

请检查并告诉我如何在强大的IE中透明地使用菜单!

1 个答案:

答案 0 :(得分:0)

好的'Internet Explorer,它缺乏不透明度的支持!值得庆幸的是,IE9支持不透明度。在此期间,您有时可以通过使用jQuery设置不透明度来解决这个问题:

$('#menubg').css('opacity', '0.5');

<强>更新
由于这不适合您,您需要做的是创建1px宽度,1px高度.png颜色#000和不透明度50%。然后使用此css规则:

#menubg { background:url(/path/to/png.png) repeat;}

摆脱那个过滤器,它就是魔鬼。