Jquery 下拉列表隐藏在包装 div 后面

标签 jquery html css

因为我正在为我的游戏网站制作 jquery 下拉列表。我被一个问题震惊了。当我将鼠标悬停在下拉菜单上时,我的下拉菜单位于包装 div 后面。谁能告诉我我的代码出了什么问题。请参阅我的示例代码和图像。 enter image description here

代码:

<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/

相关文章:

javascript - 从 HTML 表中检索特定行值并将其提交给 PHP

javascript - 具有语法着色功能的 HTML 编辑器 jQuery 插件

javascript - 如何使用 Javascript 禁用 HTML 按钮的点击?

javascript - 如何使我的网站避免从 URL 缩短网站(如 goo.gl)重定向?

javascript - 在单独的 HTML、JS 和 CSS 文件中破坏 D3 不起作用

html - 悬停在一个 div 上,更改此 div 内 <a> 元素的颜色

javascript - 如何从选择标签上的事件中检索对象?

jquery - 沙箱/将 HTML 代码限制在 DIV 标记中

html - CSS 内边距

php - 替换 CSS url() 的?