【问题标题】:dropdown navigation menu malfunction下拉导航菜单故障
【发布时间】:2018-05-07 07:40:40
【问题描述】:

updated issue!! 我希望我的导航栏在悬停在其上时具有下拉效果。我已经尝试了建议的不同方法,我的列表隐藏在我下面的部分后面。所以在错误地更改了这么多次之后,我现在很困惑。这是目前的情况。现在下拉列表卡在显示上。我只想在悬停时显示列表。此外,搜索框应该与导航链接位于同一行,但现在已移至下方。如果有人可以帮助我使用下拉菜单,我可以弄清楚如何解决这个问题。

.navbar {
			background: linear-gradient(#9E0A0C,#EBEBEB);
			padding: 10px;
			border-top: solid 1px #000000;
			
					}
		
		.navbar a{
			text-decoration: none;
			color: #ffffff;
			font-weight: bold;
			font-size: 1.5vw;
			text-transform: uppercase;
			padding: 3px 5px;
			margin: auto;
			display: inline;
			
			}
		
		.navbar ul {
			
			padding: 0;
			margin-top: 0;
			width: auto;
			
		}
.navbar ul:after {
	content: "";
	display: table;
	clear: both;
}

		.navbar li{
			border-left: solid 2px #000000;
			list-style-type: none;
			display: inline;
			width: 800px;
			padding: 0;
			/*position: relative;*/
			
		}
/*li a {
    display: block;
    color: white;
    text-align: center;
    padding: 5px 94px;
    text-decoration: none;
}*/
		
		.navbar a:active {
            background-color: #000000;
         }
		
		.navbar a:hover {
            background-color: #ddd;
            color: black;
			font-size: 1.5vw;
}
		
		li:first-child {
			border-left: none;
			}
		
	 .dropdown {
			display: none;
		 position: relative;
		 overflow: hidden;
         }
			
	.list {
			display:none;
			/*opacity: 0;
			visibility: hidden;*/
			z-index: 100;
	        min-width: 50px;
			max-width: 350px;
            box-shadow: 0 8px 16px 0 #e7e7e7;
			background: #050243;
			position: absolute;
			left: 0;
			top: 100%;
			/*transition: 0.3s ease-in-out;*/
         }
        		
    .list a {
			color: #000000;
			font-size: 1.25vw;
			text-decoration: none;
			display: block;
			text-align: left;
			background: #dddddd;
			column-count: 2;
			}

   .list a:hover {
			background-color: #EEEEEE;
			font-size: 1.25vw;
	   		}

    .dropdown:hover, .list {
			display: block;
		/*position: absolute;
		left: 0;*/
			}
<nav class="navbar">
		  <ul>
		    <li><a href="../index.html">Home</a></li>
		    <li class="dropdown"><a href="../our_lodge.html" class="dropbtn">Our Lodge</a>
		      <div class="list"> <a href="https://www.elks.org/lodges/lodgenews.cfm?LodgeNumber=151">NEWS</a> <a href="../facilities.html">FACILITIES</a> <a href="../officers.html">OFFICERS</a> <a href="https://www.elks.org/lodges/GuestBook.cfm?LodgeNumber=151">GUEST BOOK</a> </div>
	        </li>
		    <li class="dropdown"><a href="../events.html" class="dropbtn">Events</a>
		      <div class="list"> <a href="../assests/April2018_Calendar.pdf">CALENDAR</a> <a href="../assests/0151_BINGOSCHEDULE-April2018.pdf">BINGO</a> </div>
	        </li>
		    <li class="dropdown"><a href="../contact.html" class="dropbtn">Contact Us</a>
			   <div class="list"> <a href="../who_are_we.html">WHO ARE WE?</a> </div>
		      <div class="list"> <a href="../become_an_elk.html">BECOME AN ELK</a> </div>
	        </li>
		    
	      </ul><form action="search.html">
		      <input class="search" type="text" placeholder="Search.." name="search">
	        </form>
	    </nav>

【问题讨论】:

    标签: html menu navigation dropdown


    【解决方案1】:
    1. 在您的 CSS 中,.dropdown:hover, .list { 应该是 .dropdown:hover .list {,不带逗号
    2. 将您的表单放入&lt;ul&gt; 内的&lt;li&gt; 元素中。 float: right 应该分配给表单而不是输入

    html:

        ...
            </li> 
            <li>
              <form class="navbar-search" action="search.html">
                <input class="search" type="text" placeholder="Search.." name="search">
              </form>
            </li>
          </ul> 
        </nav>
    

    css:

    .navbar-search {
      float: right;
    }
    

    更新:

    1. 我不知道你为什么想要column-count。这是故意的吗?

    2. 在最后一个&lt;li&gt;element 中有两个div -> 一个覆盖另一个

    3. 请您帮个忙,减少空白的数量,每行放置一个 html 元素并使用 cmets(html 和 css)!这让调试变得更加容易,而且你仍然会理解你昨天做了什么。


    更新 2:

    .navbar {
      background: linear-gradient(#9E0A0C, #EBEBEB);
      padding: 10px;
      border-top: solid 1px #000000;
    }
    
    .navbar a {
      text-decoration: none;
      color: #ffffff;
      font-weight: bold;
      font-size: 1.5vw;
      text-transform: uppercase;
      padding: 3px 5px;
      margin: auto;
      display: inline;
    }
    
    .navbar ul {
      padding: 0;
      margin-top: 0;
      width: auto;
    }
    
    .navbar ul:after {
      content: "";
      display: table;
      clear: both;
    }
    
    .navbar li {
      border-left: solid 2px #000000;
      list-style-type: none;
      display: inline;
      width: 800px;
      padding: 0;
      /*position: relative;*/
    }
    
    /*li a {
      display: block;
      color: white;
      text-align: center;
      padding: 5px 94px;
      text-decoration: none;
    }*/
    .navbar a:active {
      background-color: #000000;
    }
    
    .navbar a:hover {
      background-color: #ddd;
      color: black;
      font-size: 1.5vw;
    }
    
    li:first-child {
      border-left: none;
    }
    
    .dropdown {
      display: none;
      position: relative;
      overflow: hidden;
    }
    
    .list {
      display: none;
      z-index: 100;
      min-width: 50px;
      max-width: 350px;
      box-shadow: 0 8px 16px 0 #e7e7e7;
      background: #050243;
      position: absolute;
      left: 0;
      top: 100%;
    }
    
    .list a {
      color: #000000;
      font-size: 1.25vw;
      text-decoration: none;
      display: block;
      text-align: left;
      background: #dddddd;
    }
    
    .list a:hover {
      background-color: #EEEEEE;
      font-size: 1.25vw;
    }
    
    .dropdown:hover .list {
      display: block;
    }
    
    .navbar-search {
      float: right;
    }
    <nav class="navbar">
      <ul>
    
        <li><a href="../index.html">Home</a></li>
    
        <li class="dropdown"><a href="../our_lodge.html" class="dropbtn">Our Lodge</a>
        <div class="list"> 
          <a href="https://www.elks.org/lodges/lodgenews.cfm?LodgeNumber=151">NEWS</a>
          <a href="../facilities.html">FACILITIES</a> 
          <a href="../officers.html">OFFICERS</a> 
          <a href="https://www.elks.org/lodges/GuestBook.cfm?LodgeNumber=151">GUEST BOOK</a> 
        </div>
       </li>
    
       <li class="dropdown"><a href="../events.html" class="dropbtn">Events</a>
         <div class="list"> 
           <a href="../assests/April2018_Calendar.pdf">CALENDAR</a> 
           <a href="../assests/0151_BINGOSCHEDULE-April2018.pdf">BINGO</a> 
         </div>
       </li>
    
       <li class="dropdown"><a href="../contact.html" class="dropbtn">Contact Us</a>
         <div class="list"> 
           <a href="../who_are_we.html">WHO ARE WE?</a> 
           <a href="../become_an_elk.html">BECOME AN ELK</a> 
         </div>
       </li>
    
    <li>
      <form class="navbar-search"action="search.html">
        <input class="search" type="text" placeholder="Search.." name="search">
      </form>
    </li>
      </ul> 
    </nav>

    【讨论】:

    • 谢谢@noob!这纠正了大部分问题,但下拉菜单仍然隐藏在下一部分后面。有什么建议吗?
    • “在下一部分之后”是什么意思。在 firefox 上测试它看起来不错。
    • 我删除了列数并更正了双 div。最初每个元素都是自己的行,但是当我从一个程序(dreamweaver)复制到记事本时,空格被封闭了。我做到了,所以下拉菜单不再隐藏,但现在它们延伸了导航栏。-我在原始问题中添加了一个链接,向您展示导航栏当前的工作方式。 (我不知道如何包含图片)
    • 抱歉,我无法重现您的图片中显示的行为 - 尝试过 Edge、Firefox 和 Chrome 我用“我的”代码更新了我的答案。希望你能找到解决办法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 2013-01-12
    • 2016-02-03
    • 1970-01-01
    • 2016-09-14
    相关资源
    最近更新 更多