为什么我的:悬停不起作用?

时间:2013-06-04 20:31:16

标签: html css hover

您好我正在尝试构建不同级别的菜单。当我尝试将鼠标悬停在我的li项目上以显示下一级别时,它无效。

任何人都可以帮助我吗?

CSS的代码是:

/********************* RESET  ********************/
.menu, .memu ul{
    margin:0;
    padding: 0;
    list-style: none;
}

/********************* MENU ITEMS  ********************/
.menu > li {float:left;}

.menu > li.floatr{float:right;}

.menu li{position:relative;}

.menu li > a{display:block;}

/********************* SUB MENU  ********************/

.menu ul{
    display:none;
    position:absolute;
    width:125px;
}

.menu li:hover > ul {display:block;}

.menu ul ul{
    top:0px;
    left:125px;

}

.menu > li.floatr > ul {right:0;}
.menu > li.floatr > ul ul {left:-125px;}

html是:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Menu</title>

    <link rel="stylesheet" href="css/style.css">
</head>
<body style="padding:20px;">
    <ul class="menu">
        <li><a href="#">Blog</a></li>
        <!-- strat level 2 -->
            <ul>
                <li><a href="#">Add post</a></li>
                <li><a href="#">Archive</a></li>
                    <!-- start level 3 -->
                        <ul>
                            <li><a href="#">By Author</a></li>
                            <li><a href="#">By Year</a></li>
                            <li><a href="#">By Category</a></li>
                        </ul>
                    <!-- end level 3 -->

                <li><a href="#">Comments <span class="bubble">50</span></a></li>
            </ul>
        <!-- end level 2 -->
        <li><a href="#">Products</a></li>


        <li><a href="#">Messages <span class="bubble-alt">4</span></a></li>

        <li><a href="#">Updates <span class="bubble">23</span></a></li>

        <li class="floatr"><a href="#">Envanto</a></li>
        <li class="floatr"><a href="#">Social</a></li>
            <!-- strat level 2 -->
                <ul>
                    <li><a href="#">Twitter</a></li>
                    <li><a href="#">Facebook</a></li>
                    <li><a href="#">Google+</a></li>
                </ul>
            <!-- end level 2 -->
    </ul>
</body>
</html>

1 个答案:

答案 0 :(得分:6)

您实际上是使用.menu li:hover > ul定位列表项中的无序列表。

但是在您的HTML中,<ul>不在<li>内,而是在<ul>之后。

您可以通过将<li>放在上一个.menu li:hover + ul内来修改HTML以适合CSS选择器,也可以使用相邻的兄弟选择器(+)代替{{1}}。