我有一张名为div
的图像。它有一个CSS属性visibility:hidden;
。我有另一个叫做按钮的按钮。
我需要的是当我将鼠标悬停在按钮上时,图像会变为visibility:visible;
。
我可以使用CSS进行操作,还是必须使用JavaScript?
答案 0 :(得分:4)
是的,你可以这样做
就像这样
<强> HTML 强>
<label for="button">Click here</label>
<input type="checkbox" id="button">
<div class="one">Show my div</div>
<强>的CSS 强>
label{
background:green;
padding:10px;
}
.one{
width:100px;
display:none;
height:100px;
background:red;
margin-top:20px;
}
input[type="checkbox"]{
visibility:hidden;
}
input[type="checkbox"]:checked ~ .one{
display:block;
}
更新回答
如果你想悬停而不是检查这个 * Demo *
答案 1 :(得分:2)
请注意,这是一个javascript / jQuery解决方案:
$(button).hover(function() {
$('div#image').attr('visibility', 'visible');
}, function() {
$('div#image').attr('visibility', 'hidden');
});
答案 2 :(得分:0)
如果div是按钮的子节点,则只能执行此操作 - 这是不可能的。
如果你把它变成其他东西的孩子(即不是按钮,可以采用不同的方式),这是可能的。
然而,什么浏览器?所有主要的?因为如果你愿意通过使用兄弟选择器只使用最现代的。
但是对于主流用法,只有当div是hover元素的子元素时才能这样做。注意:您可以悬停任何内容,它不必是按钮或链接<a>
。这就是我要做的 - 创建一个看起来的div元素,就像一个按钮,并且有一个你想要改变的孩子。
答案 3 :(得分:-1)
你需要javascript。如果您的div是按钮的父级,则可以使用css,但在您的情况下,这是不可能的 JS
function changeVisibility(objID) {
var el = document.getElementById(objID);
if(el.style.visibility == 'hidden') {
el.style.visibility = 'visible';
return true;
}
el.style.visibility = 'hidden';
}
HTML
<div id="box">Something to show</div>
<input type="button" class="button" onmouseover="changeVisibility('box')" value="Change visibility" />