因为我正在为我的游戏网站制作 jquery 下拉列表。我被一个问题震惊了。当我将鼠标悬停在下拉菜单上时,我的下拉菜单位于包装 div 后面。谁能告诉我我的代码出了什么问题。请参阅我的示例代码和图像。
代码:
<div class="cat_btn">
<ul class="dropdown">
<li><a href="#">Categories</a>
<ul class="sub_menu">
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
<li><a href="#">Ben10</a></li>
</ul>
</li>
</ul>
</div>
CSS 代码:
ul.dropdown { position: relative; -webkit-border-radius: 5px;
-moz-border-radius: 5px; border-radius: 5px;}
ul.dropdown li { font-weight: bold; float: left; zoom: 1; background: #ccc; -webkit-border-radius: 5px;
-moz-border-radius: 5px; border-radius: 5px; /*width: 100px; height: 30px;*/}
ul.dropdown a:hover { color: #000; }
ul.dropdown a:active { color: #ffa500; }
ul.dropdown li a { display: block; padding: 4px 8px; border-right: 1px solid #333;
color: #222; }
ul.dropdown li:last-child a { border-right: none; } /* Doesn't work in IE */
ul.dropdown li.hover,
ul.dropdown li:hover { background: #F3D673; color: black; position: absolute; }
ul.dropdown li.hover a { color: black; }
ul.dropdown ul { width: 220px; visibility: hidden; position: absolute; top: 100%; left: 0; -webkit-border-radius: 5px;
-moz-border-radius: 5px; border-radius: 5px; }
ul.dropdown ul li { font-weight: normal; background: #f6f6f6; color: #000;
border-bottom: 1px solid #ccc; float: none; -webkit-border-radius: 5px;
-moz-border-radius: 5px; border-radius: 5px;}
/* IE 6 & 7 Needs Inline Block */
ul.dropdown ul li a { border-right: none; width: 100%; display: inline-block; -webkit-border-radius: 5px;
-moz-border-radius: 5px; border-radius: 5px;}
最佳答案
您是否将 overflow:hidden
应用于 cat_btn
(或其任何父元素?)如果是这样,这将是从 中切断任何子元素的原因>溢出
。
附加
关于我的评论,为了解决您的其他问题,您可以实现以下操作:
<div class="cat_btn">
<ul class="dropdown">
<li class="dropdown-item">
<a href="#">Categories</a>
<ul class="sub_menu">
<li><a href="#">Ben10</a></li>
...
</ul>
</li>
<li class="dropdown-item">
...
通过上述内容,您可以使用 ul.dropdown li.dropdown-item:hover
专门定位您需要的 LI,这不会影响其中的其他 LI。
正如我也说过的,您可以使用:
ul.dropdown > li:hover
这只会选择 ul.dropdown
的直接子级,但旧版浏览器不支持此功能。
关于Jquery 下拉列表隐藏在包装 div 后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12246148/