gpt4 book ai didi

javascript - CSS - 菜单项重叠

转载 作者:行者123 更新时间:2023-11-30 11:28:21 24 4
gpt4 key购买 nike

我有一个包含两个菜单项的菜单,当用户单击每个元素时,会显示一个子菜单。

问题是两个菜单显示在同一个位置 - 在第一个元素下。我已经对其进行了一段时间的调整,但找不到解决问题的方法。

我还需要确保在单击一个菜单项时,另一项的子菜单消失。谁能指出我正确的方向?

$(document).ready(function(){
$('.menu-item').on('click', function() {
$(this).children(".dropdown-content").toggle();
});
});
#nav {
width: 100%;
height: 3em;
color: #fff;
line-height: 3em;
}

#nav .nav-wrapper {
height: 100%;
position: relative;
top: 0;
}

.right {float: right !important;}

#nav-mobile {
list-style-type: none;
margin-top: 0;
}

#nav-mobile li {
display: inline;
margin: 0 2.5em 1.5em 1.5em;
font-family: Roboto, Helvetica, Arial, sans-serif;
}

#nav-mobile li a {
text-decoration: none;
/*position: relative;*/
}

#nav-mobile li img {
position: relative;
top: .4em;
}

#nav-mobile li .dropdown-content {
display: none;
position: absolute;
color: #188CCC;
background-color: white;
z-index: 1;
box-shadow: 0 .5em 1.5em 0 rgba(28, 24, 28, 0.65);
min-width: 120px;
}

#nav-mobile li .dropdown-content li {
display: block;
margin:0;
width: 100%;
}

#nav-mobile li .dropdown-content li a {
display: block;
margin:0;
padding: 0.25em 1.75em 0.25em 1.2em;
}

#nav-mobile li .dropdown-content li:hover {
background-color: #E0E0E0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ul id="nav-mobile">
<li class="menu-item">
<img src="images/img1.png">
<a class="hide-on-med-and-down white-text" href='#'><span id="lblLinks">Links</span></a>
<ul id="linksdrop" class="dropdown-content">
<li><a href="#">Link1</a></li>
<li><a href="#">Link2</a></li>
<li><a href="#">Link3</a></li>
</ul>
</li>
<li class="menu-item">
<img src="images/img2.png">
<a class="hide-on-med-and-down white-text" href='#'> <span>User</span></a>
<ul id="userdrop" class="dropdown-content">
<li><a href="profile.html">Profile</a></li>
<li><a href="logout.html">Log Off</a></li>
</ul>
</li>
</ul>

最佳答案

对于定位,在#nav-mobile li 上设置display: inline-block 并给它一个宽度。在此示例中,我将其 min-width 设置为 5em,但按照您的设计进行合理设置。

要关闭另一个,有几个选项,但只需执行 $(this).siblings().children(".dropdown-content").hide(); 可能就足够了。

$(document).ready(function(){
$('.menu-item').on('click', function() {
$(this).children(".dropdown-content").toggle();
$(this).siblings().children(".dropdown-content").hide();
});
});
#nav {
width: 100%;
height: 3em;
color: #fff;
line-height: 3em;
}

#nav .nav-wrapper {
height: 100%;
position: relative;
top: 0;
}

.right {float: right !important;}

#nav-mobile {
list-style-type: none;
margin-top: 0;
}

#nav-mobile li {
display: inline-block;
margin: 0 2.5em 1.5em 1.5em;
font-family: Roboto, Helvetica, Arial, sans-serif;
min-width: 5em;
}

#nav-mobile li a {
text-decoration: none;
/*position: relative;*/
}

#nav-mobile li img {
position: relative;
top: .4em;
}

#nav-mobile li .dropdown-content {
display: none;
position: absolute;
color: #188CCC;
background-color: white;
z-index: 1;
box-shadow: 0 .5em 1.5em 0 rgba(28, 24, 28, 0.65);
min-width: 120px;
}

#nav-mobile li .dropdown-content li {
display: block;
margin:0;
width: 100%;
}

#nav-mobile li .dropdown-content li a {
display: block;
margin:0;
padding: 0.25em 1.75em 0.25em 1.2em;
}

#nav-mobile li .dropdown-content li:hover {
background-color: #E0E0E0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ul id="nav-mobile">
<li class="menu-item">
<img src="images/img1.png">
<a class="hide-on-med-and-down white-text" href='#'><span id="lblLinks">Links</span></a>
<ul id="linksdrop" class="dropdown-content">
<li><a href="#">Link1</a></li>
<li><a href="#">Link2</a></li>
<li><a href="#">Link3</a></li>
</ul>
</li>
<li class="menu-item">
<img src="images/img2.png">
<a class="hide-on-med-and-down white-text" href='#'> <span>User</span></a>
<ul id="userdrop" class="dropdown-content">
<li><a href="profile.html">Profile</a></li>
<li><a href="logout.html">Log Off</a></li>
</ul>
</li>
</ul>

关于javascript - CSS - 菜单项重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47145039/

24 4 0