2012-10-22 38 views
4

css是否包含更改hover上的其他元素的可能性。因为我有点挣扎于简单的任务。对于这个例子,我想当你悬停<a> tag时出现form如果CSS不是子元素,纯CSS是否可以改变悬停的其他元素?

<a id="log" href="#">text</a> 
     <form id="form" action="" method="post"> 
      <input type="text" name="id"/> 
      <input type="submit" name="submit"/> 
     </form> 

应该CSS是这个样子:

#form{ 
    opacity:0; 
} 
#log:hover ~ #form { 
    opacity: 1; 
} 

或:

#log:hover + #form { 
    opacity: 1; 
} 

这真的让我发疯:/任何建议,我怎么可能使它工作吗?如果有其他方法,我不想使用javaScript。

+0

如何使形式窝在一个div并显示:块显示:无解? – TheBlackBenzKid

回答

5

把它写成 -

#form{ 
    opacity:0; 
    filter:alpha(opacity=0); /*For IE8*/ 
} 

#log:hover ~ #form { 
    opacity: 1; 
    filter:alpha(opacity=100); /*For IE8*/ 
} 

Working Demo

+0

我不喜欢这些丑陋的css – Toping

+1

@Ark:*什么*丑陋的CSS?哪一部分困扰你? –

+1

@Ark过滤器用于支持IE8中的不透明度....你有没有其他的选择? – Dipak

8
#form { 
    display: none; 
} 

#log:hover ~ #form { 
    display:block; 
} 

#form:hover { 
    display:block; 
} 

你需要#form:hover这样,当你停止徘徊链接的形式不会消失,但是这不会,如果你的工作'在触摸设备上。 #log:active ~ #form可以联系工作,目前无法确认。

e.g:http://jsbin.com/etuxab/1/edit

+0

感谢@mdk指出触摸设备的问题。我想我会为他们使用替代的CSS。再次感谢您的帮助;] – Guu