我的菜单的第三级在悬停第二级时不会显示。我知道这是因为overflow:hidden
在第二级ul
设置了风格,但是,如果我生成overflow:visible
,则max-height
的过渡效果无法正常工作。我尝试使用overflow-y:hidden
创建overflow-x:visible
并且允许转换仍然有效,但添加了一个水平滚动条,您需要向右滚动才能看到第3级菜单。如果你能解决这个问题,我还有另外一个问题,我只得到了一个不好的答案:BOUNTY QUESTION
My jsFiddle以及相关代码:
#menu li > ul {
position:absolute;
top:auto;
left:0;
width:180px;
max-height:0;
box-shadow:1px 2px 10px rgba(100, 100, 100, 0.3);
visibility: hidden;
z-index:99999;
overflow:hidden;
-webkit-transition: max-height 0.2s ease, visibility 0s linear 0.5s;
-moz-transition: max-height 0.2s ease, visibility 0s linear 0.5s;
-o-transition: max-height 0.2s ease, visibility 0s linear 0.5s;
-ms-transition: max-height 0.2s ease, visibility 0s linear 0.5s;
transition: max-height 0.2s ease, visibility 0s linear 0.5s;
background: inherit !important;
}
#menu ul li:hover > ul {
visibility: visible;
max-height: 216px;
transition-delay: 0s;
}
#menu li > ul > li > ul {
position:absolute;
top:0 !important;
left:180px !important;
width:180px;
overflow:hidden;
box-shadow:1px 2px 10px rgba(100, 100, 100, 0.3);
visibility:hidden;
}
HTML:
<nav id="menu">
<ul id="main-nav">
<li id="port"><a href="portfolio.html">Portfolio</a>
<ul>
<li id="regular"><a href="#">Regular</a>
<ul>
<li id="4col"><a href="#">4 columns</a>
</li>
</ul>
</li>
</ul>
</li>
<li id="about" class="parent menu-item"><a href="">About</a>
</li>
</ul>
</nav>
答案 0 :(得分:2)
将鼠标悬停在overflow:visible
元素上时添加ul
。在这样做时,转换仍将发生,因为在将鼠标悬停在元素上之前隐藏了溢出。
#menu ul li > ul:hover {
overflow:visible;
}