隐藏在包装器 div 后面的 Jquery 下拉菜单

标签 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 的直接子级,但旧版浏览器不支持。

关于隐藏在包装器 div 后面的 Jquery 下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12246148/

相关文章:

javascript - 多个输入框-alertifyjs/jquery

javascript - 如何从点击事件目标中获取样式?

javascript - polymer 芯脚手架-设置宽度以更改

php - 将页面从html转换为php后的位置问题

css - smartgwt样式

javascript - 使用jQuery向表添加行

jQuery "TypeError: invalid ' 在'操作数 a"

javascript - 从 JavaScript 函数返回超过 1 个值?

css - 浏览器中的SVG动画

css - 自定义pluginButtonSmall Facebook