我在这里有一个演示来说明我的问题
这只是一个向右浮动的简单导航,在“Two”下面有一个下拉菜单。
下拉菜单包含大按钮,我希望菜单可以拉伸上面的红色条。
我通过给下拉菜单中的ul设置了一个带有负左边距的集合来实现它。
#nav #topNav ul#fontSubMenu{
background:#e1e1e1;
left:-999em;
position:absolute;
padding:25px 0px 10px 22px;
margin:0 0 0 -784px;
z-index:120;
1width:100%;
width:1028px;
}
在Safari中,Chrome(Mac)似乎可以正常运行,但在Firefox中它只有几个像素。
任何人都可以告诉我为什么它在Firefox中出现,这是最好的方法。
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.4.1/build/cssreset/cssreset-min.css">
<style type="text/css">
body{
font:1em Helvetica, sans-serif;
color:#555;
}
#wrap{
background:red;
margin:0 auto;
position:relative;
width:1050px;
}
#nav{
overflow:auto;
}
#nav #topNav{
float:right;
}
#nav #topNav li{
float:left;
margin:0 0 0 6px;
}
#nav #topNav li:hover,
#nav #topNav li a:hover{
background:#e1e1e1;
color:#555;
}
#nav #topNav li:hover .subNav{
border-bottom:6px solid #e1e1e1;
z-index:21;
}
#nav #topNav li a{
border-top:6px solid red;
border-bottom:6px solid red;
display:block;
padding:13px 13px;
color:white;
font-size:.98em;
font-weight:bold;
text-decoration:none;
}
#nav #topNav ul#fontSubMenu{
background:#e1e1e1;
left:-999em;
position:absolute;
padding:25px 0px 10px 22px;
margin:0 0 0 -784px;
z-index:120;
1width:100%;
width:1028px;
}
#nav #topNav li:hover ul#fontSubMenu{
left:auto;
}
#nav #topNav li ul#fontSubMenu li{
margin:0 14px 14px 0;
}
#nav #topNav li ul#fontSubMenu li a{
border: 1px solid #f7f7f7;
display:block;
color:#555;
position:relative;
font-size:.98em;
line-height:1.3em;
font-weight:normal;
width:162px;
height:45px;
}
#nav #topNav li ul#fontSubMenu li a em{
position:absolute;
left:75px;
bottom:13px;
width:100px;
font-style:normal;
}
#nav #topNav li ul#fontSubMenu li a:hover{
background:#aaa;
}
</style>
</head>
<body>
<div id="wrap">
<div id="nav">
<ul id="topNav">
<li><a href="#">One</a></li>
<li ><a href="#" class="subNav">Two</a>
<ul id="fontSubMenu">
<li><a href="#"><em>Two One</em></a></li>
<li><a href="#"><em>Two Two</em></a></li>
<li><a href="#"><em>Two Three</em></a></li>
<li><a href="#"><em>Two Four</em></a></li>
<li><a href="#"><em>Two Five</em></a></li>
<li><a href="#"><em>Two Six</em></a></li>
<li><a href="#"><em>Two Seven</em></a></li>
<li><a href="#"><em>Two Eight</em></a></li>
<li><a href="#"><em>Two Nine</em></a></li>
<li><a href="#"><em>Two Ten</em></a></li>
<li><a href="#"><em>Two Eeleven</em></a></li>
</ul>
</li>
<li ><a href="#">Three</a></li>
<li ><a href="#">Four</a></li>
<li ><a href="#">Five</a></li>
</ul>
</div><!--nav-->
</div><!--wrap-->
</body>
</html>
答案 0 :(得分:1)
为什么不使用绝对定位?菜单总是在同一个地方,对吧?
ul#fontSubMenu{
left: 0;
top: 58px;
margin: 0;
}
(并删除您在悬停时设置的left: auto
。
你的演示也在Chrome Windows btw上大约1-2px。