2010-01-26 73 views
1

是否有可能作出以下的CSS:如何使應用於div的CSS規則影響另一個div?

#subMenue { 
//this rule apply to a div with an id of "subMenue" 
height: auto; 
width: 113px; 
position: absolute; 
background-color: #B3B3B3; 
visibility: hidden; 
} 
#menueLink:hover { 
//this rule apply to another div with an id of "menueLink" 
//make the div that is effected by *#subMenue* rule change its visibility to *visible* 
} 

我試圖與CSS基本的子菜單隻有不使用JavaScript以最少的併發症。

回答

6

你不能像你想要的那樣使用CSS。這就是說,你可以使用下面的一個純CSS菜單:

HTML:

<ul id="nav"> 
    <li> 
     <a href="">Main Item 1</a> 
     <ul> 
      <li>Sub item 1</li> 
      <li>Sub item 1</li> 
     </ul> 
    </li> 
</ul> 

CSS:

#nav > li ul { display: none; } 
#nav > li:hover ul { display: block; } 

可以爲absolute LY定位子菜單進行必要的調整

+1

WOW ... 這是神奇的... – awe 2010-01-26 10:14:57

0

這在CSS中是不可能的。您必須將:hover應用於#subMenue本身(在這種情況下顯然不是您需要的,加上它沒有任何意義,因爲#subMenue已隱藏,因此您無法在技術上將其懸停在其上)或使用JavaScript。

0

是也許是這樣的:

#subMenue #menueLink { 
visibility: hidden; 
} 


#subMenue:hover #menueLink { 
visibility: visible; 
} 
+2

這將切換#menueLink的可見性,而不是#subMenue的可見性。他想將鼠標懸停在#menueLink(頁面某處)上,並且出現#subMenue(頁面上的其他位置)。 – 2010-01-26 10:00:08

1

如果#submenue是submenue的孩子,你可以創建一個規則:

#menueLink:hover #submenue { 
    visibility:visible; 
} 

注意,在IE7及以下,只有錨可以使用pseudoselector :徘徊。

1

answer from K Prime真的是答案,但這裏是他的方法改變使用絕對定位像你想要的:

​​