【发布时间】:2019-08-10 23:25:01
【问题描述】:
我有一个渲染html 菜单标记的模块。不能覆盖此标记。
所以为了让菜单看起来像我应该写一些自定义的 CSS 代码。
问题是悬停时子菜单不会显示在其父菜单下方。
html:
<div class="moduletable_menu slider-menu">
<ul class="menu">
<li class="item-122 default current active"><a href="/skarda/en/">Products From Metal</a></li>
<li class="item-126 menu-deeper menu-parent">
<a href="#">Products<span class="menu-toggler"></span></a>
<ul class="menu-child">
<li class="item-123"><a href="/skarda/en/products/sliding-fence">Sliding Fence</a></li>
</ul>
</li>
</ul>
</div>
CSS:
.slider-menu {
display: block;
}
.slider-menu ul {
list-style: none;
padding: 0;
margin: 0 -15px;
z-index: 99;
display: block;
float: right;
position: relative;
}
.slider-menu ul li {
display: inline-block;
position: relative;
padding: 0;
}
.slider-menu ul li a {
display: inline-block;
padding: 0 15px;
line-height: 60px;
font-size: 14px;
margin: 0;
color:#fff;
}
.slider-menu .menu-deeper.menu-parent{
display: inline-block;
position: relative;
padding: 0;
list-style: none;
}
.slider-menu .menu-deeper.menu-parent li a{
display: inline-block;
padding: 0 15px;
line-height: 60px;
font-size: 14px;
margin: 0;
}
.slider-menu > ul li.menu-deeper > a::after {
font-family: "FontAwesome";
content: "\f107";
float: right;
margin-left: 7px;
}
.slider-menu .menu-child {
display: none;
}
.slider-menu .menu-child li {
display: block;
padding: 0;
position: relative;
}
.slider-menu .menu-child li > a {
font-size: 14px;
line-height: 1;
display: inline-block;
padding: 8px 0;
cursor: pointer;
}
.slider-menu .menu-deeper.menu-parent:hover > .menu-child {
animation: spFadeInUp 400ms ease-in;
display: block;
}
.slider-menu ul li a:hover {
color: red;
}
所以,我遗漏了一些东西……需要适当的更正。
【问题讨论】:
-
您拥有所有
ulfloat: right与此选择器:.slider-menu ul。在创建这样的嵌套菜单时,您可能希望更频繁地使用>....slider-menu > ul -
高度赞赏的工作示例
-
赞这个fiddle,还重要的是把
position: absolute; top: 100%;加到.menu-child中 -
如果您将其作为答案发布 - 我会接受
-
看起来
.menu-child { position: absolute }是这里的关键。
标签: html css drop-down-menu menu submenu