2011-10-20 13 views
25

は、私はサブメニューが出てくるために得ることができない、ネストされたCSSのメニューを持っています。ホバー一つの要素、および(Javascriptを使用せずに)別の変更

私はA list apartからコードを取りました。そのサイト上の例では、完全に正常に動作しますが、私は自分のページ上の2つのCSSのナビゲーションメニューを持っているので、私は別のCSSクラスで私のHTML要素を配置する必要があります。ここで

は私のコードです:私はレベル1の「A」にカーソルを合わせると

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 

"http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
    <style type="text/css"> 
    ul#lvl1 { 
     margin:0; 
     padding:0; 
     list-style:none; 
     width:150px; /* Width of Menu Items */ 
     border-bottom:1px solid #ccc; 
    } 
    li.lvl1 {position:relative} 
    ul.lvl2 { 
     position: absolute; 
     left: 149px; /* Set 1px less than menu width */ 
     top: 0; 
     display: none; 
    } 
    /* Styles for Menu Items */ 
    li.lvl1 > a { 
     display: block; 
     text-decoration: none; 
     color: #777; 
     background: #fff; /* IE6 Bug */ 
     padding: 5px; 
     border: 1px solid #ccc; 
     border-bottom: 0; 
    } 
    /* Fix IE. Hide from IE Mac \*/ 
    * html.lvl1 > ul > li {float:left;height:1%} 
    * html.lvl1 > ul > li > a {height:1%} 
    /* End */ 
    li.lvl2 > a:hover { color: #E2144A; background: #f9f9f9; } /* Hover Styles */ 
    li.lvl2 > a { padding: 2px 5px; } /* Sub Menu Styles */ 
    a.lvl1:hover ul.lvl2 {display: block} /* The magic */ 
    </style> 
</head> 
<body> 
    <ul id="lvl1"> 
    <li class="lvl1"> 
     <a class="lvl1" href="#">item1</a> 
     <ul class="lvl2"> 
     <li class="lvl2"> 
      <a class="lvl2" href="#">subitem1</a> 
     </li> 
     </ul> 
    </li> 
    <li class="lvl1"> 
     <a class="lvl1" href="#">item2</a> 
     <ul class="lvl2"> 
     <li class="lvl2"> 
      <a class="lvl2" href="#">subitem2</a> 
     </li> 
     </ul> 
    </li> 
    </ul> 
</body> 
</html> 

さて、レベル2の「ULが」出てくることはありません。誰かが光を放つことができますか?私は何かが明らかでないかもしれない。ありがとう!

答えて

28

あなたはそれが(それは兄弟ですので、+を使用)もうネストされていないことから、LVL2 <ul>をターゲットに、あなたのCSSセレクタを変更する必要があります。

a.lvl1:hover + ul.lvl2 {display: block} /* The magic */ 

あなたはこの list of css selectorsをお読みください。

それとも、代わりにそれが変わるようなセレクタのアンカー

li.lvl1:hover ul.lvl2 {display: block} /* The magic */ 
+1

ブラウズのサポートを、LVL1 <li>にホバーを移動することができます。 ie6をサポートする必要がある場合は、これをしないでください。 –

+49

同情まだIE6をサポートする必要がある1! – Jawad

関連する問題