【问题标题】:How to add a dropdown link to an existing responsive navigation menu如何将下拉链接添加到现有的响应式导航菜单
【发布时间】:2019-05-18 23:06:50
【问题描述】:

我有一个现有的响应式导航菜单,我想添加一个子菜单(实际上它只是顶部菜单项之一下的一个链接)。听起来应该很容易,但我无法弄清楚。一旦我添加了链接,它要么就在顶部项目的下方(使整个导航随之增长),要么显示“无”使其消失并且不会在悬停时返回。有没有一种简单的方法可以只用 CSS 来做到这一点?我希望我的问题足够清楚。我将包括我必要的代码。如果你给我代码,请告诉我把它放在哪里。我是新手。非常感谢您的帮助。

HTML:

<nav><a href="index.html">
      <div id="logo"><img src="images/logo-text.png" alt="CBS Stuctures, Inc."></div>
      </a>
      <label for="drop" class="toggle">MENU</label>
      <input type="checkbox" id="drop" />
      <ul class="menu">
        <li><a href="index.html">HOME</a></li>
        <li><a href="completed.html">COMPLETED PROJECTS</a></li>
        <li><a href="structures.html">STRUCTURES</a>
          <ul>
            <li><a href="video-presentation.html">Video Presentation</a></li>
          </ul>
        </li>
        <li><a href="new-products.html">NEW PRODUCTS</a></li>
        <li><a href="contact.php">CONTACT</a></li>
      </ul>
    </nav>


CSS:

nav {
    height: auto;
    margin: 0;
    padding: 0;
    background-color: #000;
}
#logo {
    display: block;
    float: left;
    padding: 0;
}
nav:after {
    content: "";
    display: table;
    clear: both;
}
nav ul {
    display: inline-block;
    font-size: 1.5em;
    list-style: none;
    float: right;
}
nav ul li {
    display: inline-block;
    float: left;
}
nav a {
    display: block;
    padding: 10px 20px;
    color: #fff;
    text-decoration: none;
}
.toggle, [id=drop] {
    display: none;
}
nav a:hover {
    color: #70E4FC;
}
nav ul li ul{
    display: none;
}
nav ul li ul:hover{
    display: block;
}

@media (max-width: 1024px) {
#logo {
    display: block;
    width: 100%;
    text-align: center;
    float: none;
    padding: 0;
}
    nav ul{
        width: 100%;
        padding:0;
        margin:0;
        float: none;
        background-color: rgba(16,70,56,1.00);
    }
  nav ul li {
    width: 100%;
      box-sizing: border-box;
      padding: 10px;
     background-color:rgba(11,51,41,1.00);
}
    nav ul li:hover{
          background-color:#0F4739;
        }
    .toggle + a, .menu{
        display: none;
    }
    .toggle{
        display:block;
        background-color: #333333;
        padding: 14px;
        font-size: 1.5em;
        cursor: pointer;  
    }
    .toggle:hover {
        background-color:#515151;
    }
    [id^=drop]:checked + ul{
        display: block;
    }
    }

【问题讨论】:

  • 您的意思是要在悬停时显示子菜单?
  • 是的。谢谢你。这就是我想要的。

标签: html css navigation dropdown


【解决方案1】:

您可以在父 ulli 内的 child ul 上简单地添加 hover selector /强>

ul li:hover ul {display: block;}  

要将其应用于特定元素,您必须将 class 添加到您的孩子 ul:

ul li:hover ul.childul {display: block;}  

检查工作示例here

【讨论】:

  • 可以加截图吗
  • 谢谢“fmsthird”。我明白了你的意思,但是当我将鼠标悬停在它上面时,它会取代顶部的导航项并使整个导航栏向下扩展而不是向下下降。这有意义吗?
  • 添加截图。
  • 是的!这样可行。还有一件小事。在移动视图中,“视频演示”链接覆盖了它后面的链接。有没有办法推送下拉列表之后或下方的链接?
  • 再次感谢“fmsthird”,你真的帮助了我!我确实发现了移动版本的最后一个问题。改变位置:绝对到相对。检查这个“回答”! :O)
猜你喜欢
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 2013-03-03
相关资源
最近更新 更多