HTML 主下拉菜单中的子菜单显示远离主下拉菜单
HTML submenu in main dropdown is displaying away from the main dropdown
如何消除主下拉菜单和子菜单之间的差距?
当我向下拉菜单添加更多内容时,子菜单和主下拉菜单之间的差距也会增加。如果我将鼠标指针保持在主下拉菜单和子下拉菜单之间,它会闪烁。
我将屏幕截图与 CSS 和 HTML 一起发布在这里:
.nav-menu, .nav-menu * {
margin: 0;
padding: 0;
list-style: none;
}
.nav-menu > ul > li {
position: relative;
white-space: nowrap;
float: left;
}
.nav-menu > ul > li + li {
padding-left: 20px;
}
.nav-menu a {
display: block;
position: relative;
color: #1a000d;
padding: 14px 0 15px 0;
transition: 0.3s;
font-size: 14px;
font-weight:bold;
font-family: "Open Sans", sans-serif;
text-transform: uppercase;
}
.nav-menu a:hover, .nav-menu .active > a, .nav-menu li:hover > a {
color: #005ce6;
text-decoration: none;
}
.nav-menu .drop-down ul {
display: block;
position: absolute;
left: 20px;
top: calc(100% - 30px);
z-index: 99;
opacity: 0;
visibility: hidden;
padding: 10px 0;
background: #fff;
box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
transition: ease all 0.3s;
}
.nav-menu .drop-down:hover > ul {
opacity: 1;
top: 100%;
visibility: visible;
}
.nav-menu .drop-down li {
min-width: 180px;
position: relative;
}
.nav-menu .drop-down ul a {
padding: 10px 20px;
font-size: 13px;
font-weight: 500;
text-transform: none;
color: #1a000d;
}
.nav-menu .drop-down ul a:hover, .nav-menu .drop-down ul .active > a, .nav-menu .drop-down ul li:hover > a {
color: #005ce6;
font-size: 14px;
font-weight:bold;
}
.nav-menu .drop-down > a:after {
content: "\ea99";
font-family: IcoFont;
padding-left: 5px;
}
.nav-menu .drop-down .drop-down ul {
top: 0;
left: calc(100% - 30px);
}
.nav-menu .drop-down .drop-down:hover > ul {
opacity: 1;
top: 0;
left: 100%;
}
.nav-menu .drop-down .drop-down > a {
padding-right: 35px;
}
.nav-menu .drop-down .drop-down > a:after {
content: "\eaa0";
font-family: IcoFont;
position: absolute;
right: 15px;
}
@media (max-width: 1366px) {
.nav-menu .drop-down .drop-down ul {
left: -90%;
}
.nav-menu .drop-down .drop-down:hover > ul {
left: -100%;
}
.nav-menu .drop-down .drop-down > a:after {
content: "\ea9d";
}
}
<nav class="nav-menu d-none d-lg-block">
<ul>
<li class="active"><a href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="services.html">Gallery</a></li>
<li class="drop-down"><a href="">Courses</a>
<ul>
<li class="drop-down"><a href="#">IELTS Regular</a>
<ul>
<li><a href="#">Academic Training</a></li>
<li><a href="#">General Training</a></li>
</ul>
</li>
<li class="drop-down"><a href="#">IELTS WEEKEND BATCH</a>
<ul>
<li><a href="#">Academic Training</a></li>
<li><a href="#">General Training</a></li>
</ul>
</li>
<li><a href="#">IELTS ONLINE</a></li>
<li class="drop-down"><a href="#">OET Regular</a>
<ul>
<li><a href="#">Listening sub-test</a></li>
<li><a href="#">Reading sub-test</a></li>
<li><a href="#">Speaking sub-test</a></li>
<li><a href="#">Role-plays</a></li>
<li><a href="#">Writing sub-test </a></li>
</ul>
</li>
<li><a href="#">OET Online</a></li>
<li><a href="#">DHA, HAAD, MOH, Prometric </a></li>
<li class="drop-down"><a href="#">7 Days crash course for Nurses</a>
<ul>
<li><a href="#">PROMETRIC EXAM for SAUDI</a></li>
<li><a href="#">PROMETRIC EXAM for OMAN</a></li>
<li><a href="#">PROMETRIC EXAM for QATAR</a></li>
<li><a href="#">DHA for DUBAI</a></li>
<li><a href="#">HAAD for ABU DHABI</a></li>
</ul>
</li>
<li><a href="#">RN Regular</a></li>
<li class="drop-down"><a href="#">10 Days Pharmacy Crash Course</a>
<ul>
<li><a href="#">HAAD</a></li>
<li><a href="#">DHA</a></li>
<li><a href="#">MOH</a></li>
<li><a href="#">PROMETRIC</a></li>
</ul>
</li>
<li class="drop-down"><a href="#">PHARMACY REGULAR COURSE</a>
<ul>
<li><a href="#">PEBC</a></li>
<li><a href="#">CAPS</a></li>
<li><a href="#">OSPAP</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="">Exams</a></li>
<li><a href="">Jobs</a></li>
<li><a href="">News</a></li>
<li><a href="">Career</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="">Login</a></li>
<li ><a class="onlineclass" href="">Online class</a></li>
</ul>
</nav>
如果你想让子菜单栏在缩放 100 时保持不变,你应该再做一次@media 查询或调整 max-width。
对于悬停时闪烁的部分,这是因为您选择了将消失的 sub-menu 栏和将显示并转到左侧的子菜单。尝试从右侧悬停下拉栏,它不会闪烁。
更改子菜单的左侧
如何消除主下拉菜单和子菜单之间的差距? 当我向下拉菜单添加更多内容时,子菜单和主下拉菜单之间的差距也会增加。如果我将鼠标指针保持在主下拉菜单和子下拉菜单之间,它会闪烁。 我将屏幕截图与 CSS 和 HTML 一起发布在这里:
.nav-menu, .nav-menu * {
margin: 0;
padding: 0;
list-style: none;
}
.nav-menu > ul > li {
position: relative;
white-space: nowrap;
float: left;
}
.nav-menu > ul > li + li {
padding-left: 20px;
}
.nav-menu a {
display: block;
position: relative;
color: #1a000d;
padding: 14px 0 15px 0;
transition: 0.3s;
font-size: 14px;
font-weight:bold;
font-family: "Open Sans", sans-serif;
text-transform: uppercase;
}
.nav-menu a:hover, .nav-menu .active > a, .nav-menu li:hover > a {
color: #005ce6;
text-decoration: none;
}
.nav-menu .drop-down ul {
display: block;
position: absolute;
left: 20px;
top: calc(100% - 30px);
z-index: 99;
opacity: 0;
visibility: hidden;
padding: 10px 0;
background: #fff;
box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
transition: ease all 0.3s;
}
.nav-menu .drop-down:hover > ul {
opacity: 1;
top: 100%;
visibility: visible;
}
.nav-menu .drop-down li {
min-width: 180px;
position: relative;
}
.nav-menu .drop-down ul a {
padding: 10px 20px;
font-size: 13px;
font-weight: 500;
text-transform: none;
color: #1a000d;
}
.nav-menu .drop-down ul a:hover, .nav-menu .drop-down ul .active > a, .nav-menu .drop-down ul li:hover > a {
color: #005ce6;
font-size: 14px;
font-weight:bold;
}
.nav-menu .drop-down > a:after {
content: "\ea99";
font-family: IcoFont;
padding-left: 5px;
}
.nav-menu .drop-down .drop-down ul {
top: 0;
left: calc(100% - 30px);
}
.nav-menu .drop-down .drop-down:hover > ul {
opacity: 1;
top: 0;
left: 100%;
}
.nav-menu .drop-down .drop-down > a {
padding-right: 35px;
}
.nav-menu .drop-down .drop-down > a:after {
content: "\eaa0";
font-family: IcoFont;
position: absolute;
right: 15px;
}
@media (max-width: 1366px) {
.nav-menu .drop-down .drop-down ul {
left: -90%;
}
.nav-menu .drop-down .drop-down:hover > ul {
left: -100%;
}
.nav-menu .drop-down .drop-down > a:after {
content: "\ea9d";
}
}
<nav class="nav-menu d-none d-lg-block">
<ul>
<li class="active"><a href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="services.html">Gallery</a></li>
<li class="drop-down"><a href="">Courses</a>
<ul>
<li class="drop-down"><a href="#">IELTS Regular</a>
<ul>
<li><a href="#">Academic Training</a></li>
<li><a href="#">General Training</a></li>
</ul>
</li>
<li class="drop-down"><a href="#">IELTS WEEKEND BATCH</a>
<ul>
<li><a href="#">Academic Training</a></li>
<li><a href="#">General Training</a></li>
</ul>
</li>
<li><a href="#">IELTS ONLINE</a></li>
<li class="drop-down"><a href="#">OET Regular</a>
<ul>
<li><a href="#">Listening sub-test</a></li>
<li><a href="#">Reading sub-test</a></li>
<li><a href="#">Speaking sub-test</a></li>
<li><a href="#">Role-plays</a></li>
<li><a href="#">Writing sub-test </a></li>
</ul>
</li>
<li><a href="#">OET Online</a></li>
<li><a href="#">DHA, HAAD, MOH, Prometric </a></li>
<li class="drop-down"><a href="#">7 Days crash course for Nurses</a>
<ul>
<li><a href="#">PROMETRIC EXAM for SAUDI</a></li>
<li><a href="#">PROMETRIC EXAM for OMAN</a></li>
<li><a href="#">PROMETRIC EXAM for QATAR</a></li>
<li><a href="#">DHA for DUBAI</a></li>
<li><a href="#">HAAD for ABU DHABI</a></li>
</ul>
</li>
<li><a href="#">RN Regular</a></li>
<li class="drop-down"><a href="#">10 Days Pharmacy Crash Course</a>
<ul>
<li><a href="#">HAAD</a></li>
<li><a href="#">DHA</a></li>
<li><a href="#">MOH</a></li>
<li><a href="#">PROMETRIC</a></li>
</ul>
</li>
<li class="drop-down"><a href="#">PHARMACY REGULAR COURSE</a>
<ul>
<li><a href="#">PEBC</a></li>
<li><a href="#">CAPS</a></li>
<li><a href="#">OSPAP</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="">Exams</a></li>
<li><a href="">Jobs</a></li>
<li><a href="">News</a></li>
<li><a href="">Career</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="">Login</a></li>
<li ><a class="onlineclass" href="">Online class</a></li>
</ul>
</nav>
如果你想让子菜单栏在缩放 100 时保持不变,你应该再做一次@media 查询或调整 max-width。
对于悬停时闪烁的部分,这是因为您选择了将消失的 sub-menu 栏和将显示并转到左侧的子菜单。尝试从右侧悬停下拉栏,它不会闪烁。
更改子菜单的左侧