悬停下拉菜单在悬停时不会显示隐藏的项目

时间:2014-02-18 17:12:13

标签: html css hover

我正在开展一个个人项目,以增加我对HTML和CSS的了解。我正在为超链接创建一个下拉菜单。我有链接样式,但当我将鼠标悬停在选项上时,下拉列表不会显示。

- 我正在使用我在学校上课的链接,因为我可以访问他们所托管的服务器而且我没有自己的服务器。

第一部分是我的列表的HTML。

<nav>
    <ul>
        <li><a href="http://webdev.spsu.edu/~cmilam/public/index.html">Home Page</a>      </li>
        <li><a href="#">Lab 1 Links</a></li>
            <ul>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l1p4.html">Lab 1, Part 4</a></li>
            </ul>
        <li><a href="#">Lab 2 Links</a></li>
            <ul>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l2p1.html">Lab 2, Part 1</a></li>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l2p2.html">Lab 2, Part 2</a></li>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l2p3.html">Lab 2, Part 3</a></li>
            </ul>
        <li><a href="#">Lab 3 Links</a></li>
    </ul>
</nav>

第二部分是样式和悬停动作的CSS。

nav ul 
{
    background: #efefef; 
    background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);  
    background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%); 
    background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%); 
    box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
    padding: 0 6px;
    border-radius: 5px;  
    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 
{
    background: #4b545f;
    background: linear-gradient(top, #4f5964 0%, #5f6975 40%);
    background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%);
    background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%);
}
nav ul li:hover a 
{
    color: #fff;
}
nav ul li a 
{
    display: block; padding: 10px 20px;
    color: #757575; text-decoration: none;
}
nav ul ul 
{
    background: #5f6975; border-radius: 0px; padding: 0;
    position: absolute; top: 100%;
    display: none;
}
nav ul ul li 
{
    float: none; 
    border-top: 1px solid #6b727c;
    border-bottom: 1px solid #575f6a;
    position: relative;
}
nav ul ul li a 
{
    padding: 6px 20px;
    color: #fff;
}
nav ul ul li a:hover 
{
    background: #4b545f;
}
nav ul li:hover > ul 
{
    display: block;
}
nav ul ul ul 
{
    position: absolute; left: 100%; top:0;
}

任何人都可以帮我解释为什么当我将鼠标悬停在它们上面时,实验室1链接和实验室2链接的下拉不会出现?

2 个答案:

答案 0 :(得分:1)

更正你的html

<nav>
    <ul>
        <li><a href="http://webdev.spsu.edu/~cmilam/public/index.html">Home Page</a> 
        </li>
        <li><a href="#">Lab 1 Links</a>

            <ul>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l1p4.html">Lab 1, Part 4</a>

                </li>
            </ul>
        </li>
        <li><a href="#">Lab 2 Links</a>

            <ul>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l2p1.html">Lab 2, Part 1</a>

                </li>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l2p2.html">Lab 2, Part 2</a>

                </li>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l2p3.html">Lab 2, Part 3</a>

                </li>
            </ul>
        </li>
        <li><a href="#">Lab 3 Links</a>

        </li>
    </ul>
</nav>

Working fiddle example http://jsfiddle.net/HB7Um/

答案 1 :(得分:0)

您的HTML无效。您必须将子菜单ul放在父li中。你过早关闭了父李。

尝试

<nav>
    <ul>
        <li><a href="http://webdev.spsu.edu/~cmilam/public/index.html">Home Page</a>      </li>
        <li><a href="#">Lab 1 Links</a>
            <ul>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l1p4.html">Lab 1, Part 4</a></li>
            </ul>
        </li>
        <li><a href="#">Lab 2 Links</a>
            <ul>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l2p1.html">Lab 2, Part 1</a></li>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l2p2.html">Lab 2, Part 2</a></li>
                <li><a href="http://webdev.spsu.edu/~cmilam/public/l2p3.html">Lab 2, Part 3</a></li>
            </ul>
         </li>
         <li><a href="#">Lab 3 Links</a></li>
 </nav>