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 に影響を与えません。

私も述べたように、次のものを使用できます。

ul.dropdown > li:hover

の直接の子のみを選択しますul.dropdownが、これは古いブラウザーではサポートされていません。

于 2012-09-03T10:38:42.617 に答える
1

z-index:1000クラスに追加ul.dropdown

于 2012-09-03T10:35:37.563 に答える