导航栏中的下拉菜单不起作用

时间:2020-01-19 12:35:09

标签: html css visual-studio

我正在尝试在导航栏的右侧获得下拉导航,但是我的下拉菜单项根本没有出现,并且当鼠标悬停在上方时,我的按钮为我提供了一条蓝线,好像是一个链接。< / p>

HTML:

 <div>
 <div class="dropdown "> 
<nav class="navbar navbar-expand-md bg-dark navbar- 
 dark py-3">
    <a id="name" href="index.html">
        <img src="images/headericon.png" width="40" height="40" class="d-inline-block align-top"   alt="">

    </a>
    <h5 style="font-size: 22px" class="ml-2 text-info mt-2">webname</h5>
</div>

   <ul> 
     <li><a href="#">User12345</a>
    <ul>
    <li><a href="#">Profile</a></li>
    <li><a href="#">Favourite</a></li>
    <li> <a href="#">Sign Out</a></li>

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


     </div> 
    </nav>

CSS:

body {
font-family: arial;
margin: 0;
padding: 0;
}

.dropdown {
margin: 0 auto;

}



ul {
transform: translateY(-110%);
padding: 0;
margin: 0 auto;
float: right;
margin-right:30px;


}

 ul li {

position: relative;
list-style: none;
display: inline-block;
box-sizing: border-box;


}

ul li a {
display: block;
padding: 0 15px;
color: #D3D3D3;
text-decoration: none;
line-height: 60px;
font-size: 20px;

  }
ul li a:hover {
background: #494c4e;
}


ul ul {
position: absolute;
top: 60px;
display: none;
}

1 个答案:

答案 0 :(得分:1)

您的CSS缺少显示下拉菜单“打开”状态的方法。

您可以通过使用父li上的:hover选择器来更改其显示属性来实现此目的。

li:hover ul {
  display: block;
}

您的代码还需要解决其他一些问题。

您的HTML无效,建议您将其传递给https://validator.w3.org/,以获取有关不正确之处的一些线索。

您也可能会遇到以下CSS问题:

ul {
  transform: translateY(-110%);
  padding: 0;
  margin: 0 auto;
  float: right;
  margin-right:30px;
}

您实际上是在页面上所有transform: translate元素上执行ul,这也将影响下拉菜单的位置。