【发布时间】: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