2

我一直在网上搜索。这个问题Hovering <a> in CSS without href on Stack Overflow,并没有以我能理解的方式解决我的问题。

我正在尝试制作一个没有链接的“主要”菜单。

从菜单中的每个项目中,我想在悬停或单击项目时创建一个下拉菜单。

我只想用 CSS 来做这件事。

我很困惑。我已经尝试了 z-index、定位和可见性的各种排列。但是,我发现很难达到我需要的结果。我也尝试在外部列表项中添加链接。

这是我的代码:

HTML:

<ul>
        <li>Name 1
          <ul>
            <li><a href="a.html" title="a">anteater</a></li>
            <li><a href="b.html" title="b">bee</a></li>
            <li><a href="c.html" title="c">cat</a></li>
            <li><a href="d.html" title="d">dog</a></li>
          </ul>
        </li>
        <li>Name 2
          <ul>
            <li><a href="e.html" title="e">egg</a></li>
            <li><a href="f.html" title="f">fern</a></li>
            <li><a href="g.html" title="g">goose</a></li>
            <li><a href="h.html" title="h">house</a></li>
          </ul>
        </li>
</ul>

CSS:

ul   {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
li   {
    float: left;
    padding: 30px 15px 20px 15px;
    border-right: dotted #FFFFFF 1px;
    color: #FFFFFF;
    font-size: 11px;
    position: relative;
    z-index: 3;
}
li.end  {
    float: right;
}
a  {
    display: block;
    text-decoration: none;
}
a:link {
    color: #FFFFFF;
}
a:visited {
    color: #FFFFFF;
}
a:hover  {
    color: #0099FF;
}
a:active  {
    color: #FFFFFF;
    overflow: visible;
}
ul li:active ul, ul ul {
    visibility:visible;
}
ul li:active ul, ul ul li {
    visibility:visible;
}
ul li:hover ul, ul ul {
    visibility: visible;
}
ul li:hover ul, ul ul li {
    visibility:visible;
}
ul ul  {
    list-style-type: none;
    margin: 0;
    position: absolute;
    visibility: hidden;
    z-index:-1;
}
ul ul li  {
    float: left;
    padding: 5px 10px;
    border-right: dotted #0000FF 1px;
    background-color: #000000;
    color: #FFFFFF;
    font-size: 11px;
    position: relative;
    visibility:hidden;
}

ul ul li a  {
    display: block;
    text-decoration: none;
}
ul ul li a:link  {
    color: #0000FF;
}
ul ul li a:visited  {
    color: #0000FF;
}
ul ul li a:hover  {
    color: #FFFFFF;
    visibility:visible;
}
ul ul li a:active {
    color: #FFFFFF;
    overflow: visible;
    visibility:visible;
}
4

1 回答 1

6

请参阅此示例http://jsfiddle.net/La2L8/

我认为您的CSS代码过多

于 2013-06-21T15:16:22.783 回答