2010-01-26 44 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真的是答案,但这里是他的方法改变使用绝对定位像你想要的:

​​