HTML下拉菜单无法正常运行

时间:2016-12-02 00:36:06

标签: html css

我是html的初学者,我正在尝试开始在我的在线投资组合工作,我已经设置了导航栏,现在我正在尝试从导航栏创建一个下拉菜单。到目前为止,我还没有能够让项目进入下拉菜单,所以我想我没有正确设置容器。提前谢谢!

/* nav bar */
body {
  margin: 0;
  padding: 0;
  
}
 
.nav ul {
  list-style: none;
  background-color: #444;
  text-align: center;
  padding: 15;
  margin: 0;
}
.nav li {
  font-family: 'Oswald', sans-serif;
  font-size: 1.2em;
  line-height: 40px;
  height: 40px;
  padding-right: 40px;
  border-bottom: 1px solid #888;
}
 
.nav a {
  text-decoration: none;
  color: #fff;
  display: block;  
  transition: .3s background-color;
}
 
.nav a:hover {
  background-color: #005f5f;
}
 
.nav a.active {
  background-color: #fff;
  color: #444;
  cursor: default;
}
 
@media screen and (min-width: 600px) {
  .nav li {
    width: 150px;
    border-bottom: none;
    height: 50px;
    line-height: 50px;
    font-size: 1.4em;
  }
 
  /* Option 1 - Display Inline */
  .nav li {
    display: inline-block;
    margin-right: -4px;
  }
 
  /* Options 2 - Float
  .nav li {
    float: left;
  }
  .nav ul {
    overflow: auto;
    width: 600px;
    margin: 0 auto;
  }
  .nav {
    background-color: #444;
  }
  */
  
  /*****************************************************************/
  /*Dropdown for portfolio tab */
  /*****************************************************************/
  /* Dropdown Button */

.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover + .dropdown-content {
    display: block;
}

.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}
  
 
  
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<META name="viewport" content="width=device-width, initial-scale=1">
<title> Will's Portfolio </title>
<link rel="stylesheet" href="dropdown.css">
<link href='http://fonts.gooleapis.com/css?family=Oswald'
rel='stylesheet' type='text/css'>


</head>
<body background = "http://2.bp.blogspot.com/-Xmo26BMqg5Q/UihlqVwTwgI/AAAAAAAAAv0/V-Rrgm0V6oo/s1600/Top+10+best+Simple+Awesome+Background+Images+for+Your+Website+or+Blog3.jpg">
<body  class="About Me">
	<header>
		<div class="nav">
			<ul>
			
			
			
				<li><a href="#">About Me</a></li>				
						
				<li>
				<div class="dropdown">
				  <button class="dropbtn">Portfolio</button>
				  <div class="dropdown-content">
					<a href="#">Graphics</a>
					<a href="#">Other</a>
					
				  </div>
				</div>
				</li>
				<li><a href="#"><nobr>Future Work</nobr></a></li>
			</ul>
		</div>	
		

	</header>
</div>
		
		


</body>
</html>

2 个答案:

答案 0 :(得分:3)

具有dropdown-content类的元素位于具有dropdown类的元素内,因此您要查找的内容实际上是.dropdown:hover .dropdown-content

您当前代码(+炭)告诉浏览器检查是否有一个相邻的兄弟(而不是一个子元素),这是不你的情况。

这是您的代码的更新:

&#13;
&#13;
/* nav bar */
body {
  margin: 0;
  padding: 0;
  
}
 
.nav ul {
  list-style: none;
  background-color: #444;
  text-align: center;
  padding: 15;
  margin: 0;
}
.nav li {
  font-family: 'Oswald', sans-serif;
  font-size: 1.2em;
  line-height: 40px;
  height: 40px;
  padding-right: 40px;
  border-bottom: 1px solid #888;
}
 
.nav a {
  text-decoration: none;
  color: #fff;
  display: block;  
  transition: .3s background-color;
}
 
.nav a:hover {
  background-color: #005f5f;
}
 
.nav a.active {
  background-color: #fff;
  color: #444;
  cursor: default;
}
 
@media screen and (min-width: 600px) {
  .nav li {
    width: 150px;
    border-bottom: none;
    height: 50px;
    line-height: 50px;
    font-size: 1.4em;
  }
 
  /* Option 1 - Display Inline */
  .nav li {
    display: inline-block;
    margin-right: -4px;
  }
 
  /* Options 2 - Float
  .nav li {
    float: left;
  }
  .nav ul {
    overflow: auto;
    width: 600px;
    margin: 0 auto;
  }
  .nav {
    background-color: #444;
  }
  */
  
  /*****************************************************************/
  /*Dropdown for portfolio tab */
  /*****************************************************************/
  /* Dropdown Button */

.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover .dropdown-content {
    display: block;
}

.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}
&#13;
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<META name="viewport" content="width=device-width, initial-scale=1">
<title> Will's Portfolio </title>
<link rel="stylesheet" href="dropdown.css">
<link href='http://fonts.gooleapis.com/css?family=Oswald'
rel='stylesheet' type='text/css'>


</head>
<body background = "http://2.bp.blogspot.com/-Xmo26BMqg5Q/UihlqVwTwgI/AAAAAAAAAv0/V-Rrgm0V6oo/s1600/Top+10+best+Simple+Awesome+Background+Images+for+Your+Website+or+Blog3.jpg">
<body  class="About Me">
	<header>
		<div class="nav">
			<ul>
			
			
			
				<li><a href="#">About Me</a></li>				
						
				<li>
				<div class="dropdown">
				  <button class="dropbtn">Portfolio</button>
				  <div class="dropdown-content">
					<a href="#">Graphics</a>
					<a href="#">Other</a>
					
				  </div>
				</div>
				</li>
				<li><a href="#"><nobr>Future Work</nobr></a></li>
			</ul>
		</div>	
		

	</header>
</div>
		
		


</body>
</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

问题在于这个CSS选择器:

.dropdown:hover + .dropdown-content {
    display: block;
}

应该是:

.dropdown:hover .dropdown-content {
    display: block;
}

/* nav bar */
body {
  margin: 0;
  padding: 0;
  
}
 
.nav ul {
  list-style: none;
  background-color: #444;
  text-align: center;
  padding: 15;
  margin: 0;
}
.nav li {
  font-family: 'Oswald', sans-serif;
  font-size: 1.2em;
  line-height: 40px;
  height: 40px;
  padding-right: 40px;
  border-bottom: 1px solid #888;
}
 
.nav a {
  text-decoration: none;
  color: #fff;
  display: block;  
  transition: .3s background-color;
}
 
.nav a:hover {
  background-color: #005f5f;
}
 
.nav a.active {
  background-color: #fff;
  color: #444;
  cursor: default;
}
 
@media screen and (min-width: 600px) {
  .nav li {
    width: 150px;
    border-bottom: none;
    height: 50px;
    line-height: 50px;
    font-size: 1.4em;
  }
 
  /* Option 1 - Display Inline */
  .nav li {
    display: inline-block;
    margin-right: -4px;
  }
 
  /* Options 2 - Float
  .nav li {
    float: left;
  }
  .nav ul {
    overflow: auto;
    width: 600px;
    margin: 0 auto;
  }
  .nav {
    background-color: #444;
  }
  */
  
  /*****************************************************************/
  /*Dropdown for portfolio tab */
  /*****************************************************************/
  /* Dropdown Button */

.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover .dropdown-content {
    display: block;
}

.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}
  
 
  
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<META name="viewport" content="width=device-width, initial-scale=1">
<title> Will's Portfolio </title>
<link rel="stylesheet" href="dropdown.css">
<link href='http://fonts.gooleapis.com/css?family=Oswald'
rel='stylesheet' type='text/css'>


</head>
<body background = "http://2.bp.blogspot.com/-Xmo26BMqg5Q/UihlqVwTwgI/AAAAAAAAAv0/V-Rrgm0V6oo/s1600/Top+10+best+Simple+Awesome+Background+Images+for+Your+Website+or+Blog3.jpg">
<body  class="About Me">
	<header>
		<div class="nav">
			<ul>
			
			
			
				<li><a href="#">About Me</a></li>				
						
				<li>
				<div class="dropdown">
				  <button class="dropbtn">Portfolio</button>
				  <div class="dropdown-content">
					<a href="#">Graphics</a>
					<a href="#">Other</a>
					
				  </div>
				</div>
				</li>
				<li><a href="#"><nobr>Future Work</nobr></a></li>
			</ul>
		</div>	
		

	</header>
</div>
		
		


</body>
</html>