如何在我的顶部导航中加入下拉菜单 link
How to incorporate a dropdown link in my topnav
我正在完成一项大学任务,我必须制作一个网站。我使用 flex box 构建了一个顶部菜单,但是我正在努力在其中合并一个下拉导航列表。我知道有数以百万计的教程教如何制作这些菜单,但是这些教程中的大多数只构建非常简单的菜单,没有弹性框并且格式不佳......我希望当用户将鼠标悬停在“我们是谁" 三个链接出现在“我们是谁”下。
我现在将提供我的 html 和 css,以及对问题的进一步描述:
<header>
<nav>
<ul class="nav_links">
<li><img src="Logo.webp" alt="Logo" height="100px" width="100px"></li>
<li><a href="#">Home</a></li>
<li><a href="#">Who Are We</a></li>
<li><a href="#">What Do We Do</a></li>
<li><a href="#">Indicators</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">More</a></li>
</ul>
</nav>
</header>
CSS:
*{
box-sizing: border-box;
margin: 0;
padding: 0;
}
/* top menu */
.nav_links{
z-index: 9;
background-color: white;
position: fixed;
width: 100%;
height: 100px;
list-style-type: none;
display: flex;
justify-content: flex-end;
}
.nav_links li{
margin: 40px 25px;
font-family: 'Open Sans',Arial,sans-serif;
font-size: 13px;
text-transform: uppercase;
}
.nav_links a{
text-decoration: none;
padding-bottom: 10px;
}
.nav_links li a:hover{
border-bottom-style: solid;
border-color: beige;
}
.nav_links li a:visited{
color: black;
}
nav ul li:first-child {
margin-right: auto;
position: relative;
bottom: 40px;
}
我知道诀窍是在我想下拉的 li 下放置一个 ul,隐藏它,并且仅当用户将鼠标悬停在它上面时才显示它,但我无法让它工作。下拉导航链接总是变得如此奇怪和不合适。我被困在这里很长一段时间,所以如果有人能帮忙的话,我整个月都会很开心!
谢谢。
(抱歉,如果我的英语很奇怪,那不是我的母语)。也请忽略我html上的标志,它只是一张小图片。
像这样:
我编辑了你的代码,但如果你想要一个功能齐全的下拉菜单,你需要一点 javascript
*{
box-sizing: border-box;
margin: 0;
padding: 0;
}
/* top menu */
.nav_links{
z-index: 9;
background-color: white;
position: fixed;
width: 100%;
height: 100px;
list-style-type: none;
display: flex;
justify-content: flex-end;
}
.nav_links li{
margin: 40px 25px;
font-family: 'Open Sans',Arial,sans-serif;
font-size: 13px;
text-transform: uppercase;
}
.nav_links a{
text-decoration: none;
padding-bottom: 10px;
}
.nav_links li a:hover{
border-bottom-style: solid;
border-color: beige;
}
.nav_links li a:visited{
color: black;
}
nav ul li:first-child {
margin-right: auto;
position: relative;
bottom: 40px;
}
#who_are_we:hover + #drop_menu{
display: block;
}
#drop_menu a{
display: block
}
#drop_menu{
display: none;
position: absolute;
}
<header>
<nav>
<ul class="nav_links">
<li><img src="Logo.webp" alt="Logo" height="100px" width="100px"></li>
<li><a href="#">Home</a></li>
<li>
<a href="#" id="who_are_we">Who Are We</a>
<div id="drop_menu">
<a href="#">Home</a>
<a href="#">Contact</a>
<a href="#">About us</a>
</div>
</li>
<li><a href="#">What Do We Do</a></li>
<li><a href="#">Indicators</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">More</a></li>
</ul>
</nav>
</header>
我正在重新编码一个 css 来喜欢这个,悬停后下拉。
.dropdownmenu ul, .dropdownmenu li {
margin: 0;
padding: 0;
}
.dropdownmenu ul {
background: gray;
list-style: none;
width: 100%;
}
.dropdownmenu li {
float: left;
position: relative;
width:auto;
}
.dropdownmenu a {
background: #30A6E6;
color: #FFFFFF;
display: block;
font: bold 12px/20px sans-serif;
padding: 10px 25px;
text-align: center;
text-decoration: none;
-webkit-transition: all .25s ease;
-moz-transition: all .25s ease;
-ms-transition: all .25s ease;
-o-transition: all .25s ease;
transition: all .25s ease;
}
.dropdownmenu li:hover a {
background: #000000;
}
#submenu {
left: 0;
opacity: 0;
position: absolute;
top: 35px;
visibility: hidden;
z-index: 1;
}
li:hover ul#submenu {
opacity: 1;
top: 40px; /* adjust this as per top nav padding top & bottom comes */
visibility: visible;
}
#submenu li {
float: none;
width: 100%;
}
#submenu a:hover {
background: #DF4B05;
}
#submenu a {
background-color:#000000;
}
<header>
<nav class="dropdownmenu">
<ul>
<li><img src="Logo.webp" alt="Logo" height="100px" width="100px"></li>
<li><a href="#">Home</a></li>
<li><a href="#">Who Are We</a>
<ul id="submenu">
<li><a href="">Difference</a></li>
<li><a href="">New features</a></li>
<li><a href="">Creatinge</a></li>
</ul>
</li>
<li><a href="#">What Do We Do</a></li>
<li><a href="#">Indicators</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">More</a></li>
</ul>
</nav>
</header>
我正在完成一项大学任务,我必须制作一个网站。我使用 flex box 构建了一个顶部菜单,但是我正在努力在其中合并一个下拉导航列表。我知道有数以百万计的教程教如何制作这些菜单,但是这些教程中的大多数只构建非常简单的菜单,没有弹性框并且格式不佳......我希望当用户将鼠标悬停在“我们是谁" 三个链接出现在“我们是谁”下。
我现在将提供我的 html 和 css,以及对问题的进一步描述:
<header>
<nav>
<ul class="nav_links">
<li><img src="Logo.webp" alt="Logo" height="100px" width="100px"></li>
<li><a href="#">Home</a></li>
<li><a href="#">Who Are We</a></li>
<li><a href="#">What Do We Do</a></li>
<li><a href="#">Indicators</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">More</a></li>
</ul>
</nav>
</header>
CSS:
*{
box-sizing: border-box;
margin: 0;
padding: 0;
}
/* top menu */
.nav_links{
z-index: 9;
background-color: white;
position: fixed;
width: 100%;
height: 100px;
list-style-type: none;
display: flex;
justify-content: flex-end;
}
.nav_links li{
margin: 40px 25px;
font-family: 'Open Sans',Arial,sans-serif;
font-size: 13px;
text-transform: uppercase;
}
.nav_links a{
text-decoration: none;
padding-bottom: 10px;
}
.nav_links li a:hover{
border-bottom-style: solid;
border-color: beige;
}
.nav_links li a:visited{
color: black;
}
nav ul li:first-child {
margin-right: auto;
position: relative;
bottom: 40px;
}
我知道诀窍是在我想下拉的 li 下放置一个 ul,隐藏它,并且仅当用户将鼠标悬停在它上面时才显示它,但我无法让它工作。下拉导航链接总是变得如此奇怪和不合适。我被困在这里很长一段时间,所以如果有人能帮忙的话,我整个月都会很开心! 谢谢。 (抱歉,如果我的英语很奇怪,那不是我的母语)。也请忽略我html上的标志,它只是一张小图片。
像这样:
我编辑了你的代码,但如果你想要一个功能齐全的下拉菜单,你需要一点 javascript
*{
box-sizing: border-box;
margin: 0;
padding: 0;
}
/* top menu */
.nav_links{
z-index: 9;
background-color: white;
position: fixed;
width: 100%;
height: 100px;
list-style-type: none;
display: flex;
justify-content: flex-end;
}
.nav_links li{
margin: 40px 25px;
font-family: 'Open Sans',Arial,sans-serif;
font-size: 13px;
text-transform: uppercase;
}
.nav_links a{
text-decoration: none;
padding-bottom: 10px;
}
.nav_links li a:hover{
border-bottom-style: solid;
border-color: beige;
}
.nav_links li a:visited{
color: black;
}
nav ul li:first-child {
margin-right: auto;
position: relative;
bottom: 40px;
}
#who_are_we:hover + #drop_menu{
display: block;
}
#drop_menu a{
display: block
}
#drop_menu{
display: none;
position: absolute;
}
<header>
<nav>
<ul class="nav_links">
<li><img src="Logo.webp" alt="Logo" height="100px" width="100px"></li>
<li><a href="#">Home</a></li>
<li>
<a href="#" id="who_are_we">Who Are We</a>
<div id="drop_menu">
<a href="#">Home</a>
<a href="#">Contact</a>
<a href="#">About us</a>
</div>
</li>
<li><a href="#">What Do We Do</a></li>
<li><a href="#">Indicators</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">More</a></li>
</ul>
</nav>
</header>
我正在重新编码一个 css 来喜欢这个,悬停后下拉。
.dropdownmenu ul, .dropdownmenu li {
margin: 0;
padding: 0;
}
.dropdownmenu ul {
background: gray;
list-style: none;
width: 100%;
}
.dropdownmenu li {
float: left;
position: relative;
width:auto;
}
.dropdownmenu a {
background: #30A6E6;
color: #FFFFFF;
display: block;
font: bold 12px/20px sans-serif;
padding: 10px 25px;
text-align: center;
text-decoration: none;
-webkit-transition: all .25s ease;
-moz-transition: all .25s ease;
-ms-transition: all .25s ease;
-o-transition: all .25s ease;
transition: all .25s ease;
}
.dropdownmenu li:hover a {
background: #000000;
}
#submenu {
left: 0;
opacity: 0;
position: absolute;
top: 35px;
visibility: hidden;
z-index: 1;
}
li:hover ul#submenu {
opacity: 1;
top: 40px; /* adjust this as per top nav padding top & bottom comes */
visibility: visible;
}
#submenu li {
float: none;
width: 100%;
}
#submenu a:hover {
background: #DF4B05;
}
#submenu a {
background-color:#000000;
}
<header>
<nav class="dropdownmenu">
<ul>
<li><img src="Logo.webp" alt="Logo" height="100px" width="100px"></li>
<li><a href="#">Home</a></li>
<li><a href="#">Who Are We</a>
<ul id="submenu">
<li><a href="">Difference</a></li>
<li><a href="">New features</a></li>
<li><a href="">Creatinge</a></li>
</ul>
</li>
<li><a href="#">What Do We Do</a></li>
<li><a href="#">Indicators</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">More</a></li>
</ul>
</nav>
</header>