如果它不是子元素,纯CSS可以在悬停时更改其他元素吗?

时间:2012-10-22 14:04:59

标签: html css css3

css是否包含更改hover上其他元素的可能性。因为我有点挣扎着简单的任务。对于此示例,我希望在您悬停form时显示<a> tag

<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。

2 个答案:

答案 0 :(得分:8)

#form {
  display: none;
}

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

#form:hover {
  display:block;
}

您需要#form:hover,以便在您停止悬停链接时表单不会消失,但如果您使用的是触摸设备则无法使用此功能。 #log:active ~ #form可以触摸工作,现在无法确认。

例如:http://jsbin.com/etuxab/1/edit

答案 1 :(得分:5)

将其写为 -

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

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

Working Demo