html - 为什么我的是:hover not working?

标签 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>

最佳答案

您实际上是在使用 .menu li:hover > ul 将列表项内的无序列表作为目标.

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

您可以修改您的 HTML 以适应 CSS 选择器,方法是将 <ul>在前一个里面 <li>或者您可以使用相邻的兄弟选择器 (+) 代替 .menu li:hover + ul .

关于html - 为什么我的是:hover not working?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16926915/

相关文章:

HTML 悬停图像代码

html - div 旁边的 div

jquery - 使用anchor显示div

html - CSS 文本对齐 : center not working pls

css - 将输入 radio 更改为大的 div 框

html - 根据高度水平换行?

css - Safari 'on hover' 和 'click' 图像叠加错误

html - 使用 Sprite 进行水平导航

html - 向表中除第一行以外的所有行添加滚动

html - SVG 内容的固有大小属性