2

因为我正在为我的游戏网站处理 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;} 
4

2 回答 2

2

您是否已overflow:hidden申请cat_btn(或其任何父母?)如果是这样,这将是切断任何子元素的原因overflowing

额外的

关于我的评论,为了解决您的其他问题,您可以执行以下操作:

<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">
       ...

有了上述内容,您就可以专门针对您需要的 LI,ul.dropdown li.dropdown-item:hover这些 LI 不会影响其中的其他 LI。

正如我也说过的,您可以使用:

ul.dropdown > li:hover

这只会选择直接子级,ul.dropdown但旧版浏览器不支持。

于 2012-09-03T10:38:42.617 回答
1

添加z-index:1000到班级ul.dropdown

于 2012-09-03T10:35:37.563 回答