2013-04-22 294 views
4

我想在我的下拉菜单中创建一个悬停效果,但我无法弄清楚如何去做。CSS菜单悬停效果

我想要做的是这样的:

enter image description here

,而不是这样的:

enter image description here

我的代码 - 你也可以看到它here(updated version)

HTML:

<nav> 
    <ul> 
     <li><a href="#">One</a> 
      <ul> 
       <li><a href="1.html">1.1</a></li> 
       <li><a href="2.html">1.2</a> 
      </ul> 
     </li> 
     <li><a href="#">Two</a> 
      <ul> 
       <li><a href="3.html">2.1</a></li> 
       <li><a href="4.html">2.2</a></li> 
       <li><a href="5.html">2.3</a></li> 
      </ul> 
     </li> 
     <li><a href="#">Three</a> 
      <ul> 
       <li><a href="6.html">3.1</a></li> 
       <li><a href="7.html">3.2</a></li> 
      </ul> 
     </li> 
     <li><a href="8.html">Four</a></li> 
    </ul> 
</nav> 

CSS:

nav { 
    float: left; 
} 
nav ul ul { 
    display: none; 
} 
nav ul li:hover > ul { 
    display: block; 
} 
nav ul { 
    list-style: none; 
    position: relative; 
    display: inline-table; 
} 
nav ul:after { 
    content:""; 
    clear: both; 
    display: block; 
} 
nav ul li { 
    float: left; 
} 
nav ul li:hover { 
} 
nav ul li:hover { 
    background-color: #000; 
} 
nav ul li a:hover { 
    color: #fff; 
} 
nav ul li a { 
    display: block; 
    padding: 25px 15px; 
    color: #6F0; 
    text-decoration: none; 
} 
nav ul ul { 
    border-radius: 0px; 
    padding: 0; 
    position: absolute; 
} 
nav ul ul li { 
    float: none; 
    position: relative; 
} 
nav ul ul li a { 
    padding: 15px 40px; 
    color: #000; 
} 

任何帮助将不胜感激。

回答

3

Working fiddle:

更改样式以下二:

nav ul li:hover { 
border-bottom: 1px solid #000; 
color: #000; 
} 

nav ul li a:hover { 
color: #000; 
} 

并添加:

nav ul li:hover li:hover{ 
     background: #000; 
} 

为了样式子菜单。

首先要设定一个底部边框(li:hover) - 你可以在此边框的宽度从1px改变的东西更厚,也就是说,3px

+0

我想它和它的作品。唯一的问题是我不希望悬停栏出现在子菜单中。另外,如果您查看更新的jsfiddle代码,则子菜单现在不起作用。如果我使用'margin'并移动它以便更接近它的工作菜单,但是如果它不靠近菜单,我怎么才能使它工作? – kalpetros 2013-04-22 20:59:15

+0

@KalPetros让我看看 – 2013-04-22 21:01:35

+0

@KalPetros我提供的小提琴有什么问题?我相信,我的答案回答了*原始问题。 – 2013-04-22 21:02:39