【问题标题】:CSS drop down menu main tab snagCSS下拉菜单主选项卡障碍
【发布时间】:2011-08-15 23:41:28
【问题描述】:

我一直在构建一个 CSS 下拉菜单,但遇到了一点小问题,想知道是否有人可以帮我解决这个问题。我有一个包含这个 HTML 的菜单

<div id="menu">
<ul>
<li><a class="active" href="#">Home</a>
<ul class="sub-menu">
<li><a href="#">This is sub</a></li>
<li><a href="#">sub menu item</a></li>
<li><a href="#">This is a long sub menu item</a></li>
</ul>
</li>  
<li><a href="#">Location</a></li>
<li><a href="#">another link</a></li>
</ul>
</div>

目前,当我将鼠标悬停在主要的 &lt;li&gt; 'Home' 上时,它的宽度扩大了很多,我认为可以容纳我拥有的子类菜单。我怎样才能阻止这种情况发生?实现以下目标:

|首页| // 漂亮的短主标签
|子菜单链接 |
|另一个子菜单链接|

与目前正在发生的情况相反(请原谅我的图表的粗略)

|首页........| // 真的很长把所有东西都搞砸了 tab
|子菜单链接 |
|另一个子菜单链接|

这是我的菜单 CSS 代码:

#menu ul {
margin: 0;
list-style: none;
padding: 0 0 0 20px;
position: relative;
z-index: 40;
}
#menu ul li {
float: left;
padding: 10px 10px 13px 0;
position: relative;
z-index: 50;
}
#menu li a {
text-decoration: none;
font-family: Verdana, Geneva, sans-serif;

【问题讨论】:

  • 你能快速创建一个 JSFiddle 吗? jsfiddle.net
  • @Jonathon:这是给你的小提琴:jsfiddle.net/nupul/N4kFt 但是将鼠标悬停在“主页”上没有任何反应——你到底想要什么(或期待看到什么?)
  • PS:我已经为测试添加了边框...
  • 看不到图表中的差异 :) 您可能希望将它们包含在代码块中 - 单击帖子编辑器上的 {} 以使其格式正确
  • 对不起,我一定是误删了一些东西,这里是 JSFiddle jsfiddle.net/gC6Fa/2

标签: css drop-down-menu


【解决方案1】:

我有基本相同的标记,所以下面的代码应该可以很好地满足你的需要。

我留下了所有颜色和图像信息,以防您也需要帮助。

#menu {
    background: none repeat scroll 0 0 #333333;
    border: 0 none;
    font: bold 14px "Lucida Sans Unicode","Bitstream Vera Sans","Trebuchet Unicode MS","Lucida Grande",Verdana,Helvetica,sans-serif;
    margin: 0;
    padding: 0;
    width: 100%;
}
#menu ul {
    background: none repeat scroll 0 0 #333333;
    height: 35px;
    list-style: none outside none;
    margin: 0 0 3px;
    padding: 0;
    width: 100%;
}
#menu li {
    float: left;
    padding: 0;
}
#menu li a {
    background: no-repeat scroll right bottom #333333;
    color: #CCCCCC;
    display: block;
    font-weight: normal;
    line-height: 35px;
    margin: 0;
    padding: 0 10px;
    text-align: center;
    text-decoration: none;
}
#menu li a:hover, #menu ul li:hover a {
    background: no-repeat scroll center bottom #2580A2;
    color: #FFFFFF;
    text-decoration: none;
}
#menu li ul {
    background: none repeat scroll 0 0 #333333;
    border: 0 none;
    display: none;
    height: auto;
    margin: 0;
    padding: 0;
    position: absolute;
    width: 225px;
    z-index: 200;
}
#menu li:hover ul {
    display: block;
}
#menu li li {
    display: block;
    float: none;
    margin: 0;
    padding: 0;
    width: 225px;
}
#menu li:hover li a {
    background: none repeat scroll 0 0 transparent;
}
#menu li ul a {
    display: block;
    font-size: 12px;
    font-style: normal;
    height: 35px;
    margin: 0;
    padding: 0 10px 0 15px;
    text-align: left;
}
#menu li ul a:hover, #menu li ul li:hover a {
    background: no-repeat scroll left center #2580A2;
    border: 0 none;
    color: #FFFFFF;
    text-decoration: none;
}

【讨论】:

  • 谢谢,我刚把它放进去,效果很好。我感谢您并感谢您的帮助。
  • 太好了,很高兴我能帮上忙。
【解决方案2】:

标记很奇怪。

首先,尝试将它的结构比将主链接的 与另一个

另外,不要将菜单包装在

中。只需将样式直接应用于父

【讨论】:

  • 我将这种风格建立在吸盘鱼标记的基础上,该标记将 UL 放置在已经打开的 li 中
  • 我知道它很相似,我想尝试复制 LinkedIn 菜单栏,它们的来源是:
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签