我正在开发一个网络应用程序,我的代码在chrome和资源管理器上运行良好,但在Firefox上它给我带来了麻烦。 我添加一个截图链接,以便您可以看到菜单的外观(黑色CSS框应该在菜单下): link to see the menu
这是我的风格css:
/ - 菜单 - /
#menu { height:39px; position:relative; float:right; margin-top:33px; background:url(../images/menu/bg.jpg) repeat-x; }
#menu-left { width:8px; height:38px; position:relative; z-index:10; float:left; background:url(../images/menu/menu-sx.jpg); }
##menu-right { width:8px; height:38px; position:relative; z-index:10; float:right; background:url(../images/menu/menu-dx.jpg); }
.menu-item { float:left; position:relative; z-index:100; cursor:pointer; }
#menu-name { float:left; padding-top:10px; padding-right:11px; font-size:10pt; color:#FFF; text-shadow:#001F2E 0px -1px; }
#menu-rollover-left { width:98px; height:38px; position:absolute; top:0; left:0; z-index:0; background:url(../images/menu/rollover-left.jpg); }
#menu-rollover-right { width:86px; height:38px; position:absolute; top:0; right:0; z-index:0; background:url(../images/menu/rollover-right.jpg); }
/*-- Menu labels --*/
.label { height:34px; position:absolute; top:103px; z-index:200; opacity:0; filter:alpha(opacity=0); }
.label-left { width:9px; height:34px; float:left; background:url(../images/menu/label-left.jpg); }
.label-right { width:9px; height:34px; float:left; background:url(../images/menu/label-right.jpg); }
.label-center { height:34px; float:left; background:url(../images/menu/label-center.jpg) center; }
.label-center span { position:relative; top:7px; font-size:8pt; color:#FFF; text-shadow:#000 0px -1px; }
/*-- Notifications flag --*/
#header a { text-decoration:none;}
#red-flag { width:27px; height:51px; position:absolute; top:33px; right:62px; z-index:300; background:url(../images/menu/red-flag.png); font-size:9pt; color:#FFF; text-shadow:#3B0001 0px -1px; text-align:center; line-height:67px; cursor:pointer; }
这是我的HTML代码:
<div id="menu">
<div id="menu-left"></div>
<a href="/doweets/index"><div id="home-btn" class="menu-item" onmouseover="RollMenu(this, event);" onmouseout="RollMenu(this, event);"><img src="/images/menu/home.jpg" /></div></a>
<a href="/calendar/week"><div id="calendar-btn" class="menu-item" onmouseover="RollMenu(this, event);" onmouseout="RollMenu(this, event);"><img src="/images/menu/calendar.jpg" /></div></a>
<a href="/findfriends"><div id="addfriends-btn" class="menu-item" onmouseover="RollMenu(this, event);" onmouseout="RollMenu(this, event);"><img src="/images/menu/addfriends.jpg" /></div></a>
<div class="menu-item"><img src="/images/menu/line.jpg" /></div>
<div id="menu-name"><%= current_user.name %></div>
<a href="/notifications/index"><div id="notifications-btn" class="menu-item" onmouseover="RollMenu(this, event);" onmouseout="RollMenu(this, event);"><img src="/images/menu/notifications.jpg" /></div></a>
<a href="/users/edit"><div id="settings-btn" class="menu-item" onmouseover="RollMenu(this, event);" onmouseout="RollMenu(this, event);"><img src="/images/menu/settings.jpg" /></div>
<a href="/users/sign_out"><div id="logout-btn" class="menu-item" onmouseover="RollMenu(this, event);" onmouseout="RollMenu(this, event);"><img src="/images/menu/logout.jpg" /></div></a>
<div id="menu-right"></div>
<!-- Rollover states -->
<div id="menu-rollover-left"></div>
<div id="menu-rollover-right"></div>
</div>
<!-- Notifications flag -->
<a href="/notifications/index"><div id="red-flag" onmouseover="RollMenu(this, event);" onmouseout="RollMenu(this, event);">
<%= count %>
<% if count == 0 %>
<script>$("#red-flag").css("display", "none");</script>
<% end %>
</div></a>
在菜单的某些页面上,它根本不起作用。 谢谢你们。 尼尔。
答案 0 :(得分:0)
我认为您的问题与position: relative
和position: absolute
的不同元素有关。很难确切地看到(特别是因为我不确定黑盒应该是哪个元素)。但是,我看到您为position: relative
分配了一个z-index元素,但这不起作用。我认为正在发生的事情是,绝对定位的元素在Chrome和IE中推动你的小黑旗,但不在Firefox中。如果可能的话,尝试将所有内容转换为position: absolute
- 这对我解决FF问题非常有用。
另外,如果您提供了一个网址,我确信有很多人会很高兴在firebug中使用它,直到它被修复。
答案 1 :(得分:0)
尝试这样的事情:
<强> HTML 强>
<ul>
<li><a href='#' alt='Back to the homepage'><img src='' alt='Home'><span>Home</span></a></li>
<li><a href='' alt=''><img src='' alt=''/><span>Lorem</span></a></li>
</ul>
<强> CSS 强>
#menu { display:block; padding:0 0 0 5px; background:#ccc; }
#menu li { display:inline-block; padding:0 5px 0 0; height:20px; }
#menu li a { position:relative; }
#menu li a span { position:absolute; top:20px; }
#menu li a:link span,
#menu li a:visited span { display:none; }
#menu li a:hover span,
#menu li a:active span { display:block; }