我有一个隐藏的div
,当我将其悬停在CSS上时,我想显示它。不幸的是,无论我做什么,CSS悬停选择器似乎都不起作用。在chrome开发人员的工具中,我可以通过强制:hover状态来显示div,但否则它将不起作用。
这是我的代码
.invisible{
display: none;
border: 2px solid red;
}
.invisible:hover{
display: block;
}
<div class="invisible">
Text text text
</div>
答案 0 :(得分:3)
带有display: none
的元素无法悬停,因为它不占用文档中的任何空间。您可以先将元素的opacity
设置为0
,然后将opacity
更改为1
,将其悬停以使其不可见,但仍占用文档中的空间,并且因此可以将鼠标悬停在上面。
.invisible{
opacity: 0;
border: 2px solid red;
}
.invisible:hover{
opacity: 1;
}
<div class="invisible">
Text text text
</div>
如果您希望div
平滑显示,则可以使用transition
属性。由于仅opacity
发生了变化,因此您可以像这样添加不透明度过渡:transition: opacity 1s
。 1s
是过渡的持续时间(一秒)。您可以对其进行更改,以使div
的显示速度变慢或变快。
.invisible{
opacity: 0;
border: 2px solid red;
transition: opacity 1s;
}
.invisible:hover{
opacity: 1;
}
<div class="invisible">
Text text text
</div>
答案 1 :(得分:1)
请参阅此小提琴,这可能会有所帮助,您正在尝试实现什么。 您可以使用父div尺寸调整悬停区域。 https://jsfiddle.net/pcwudrmc/37399/
a
.parent {
padding: 20px;
}
.parent .child {
display: none;
background: red;
padding: 20px;
text-align: center;
}
.parent:hover .child {
display: block;
}
答案 2 :(得分:1)
您可以使用visibility
:
.content .invisible {
visibility: hidden;
border: 2px solid red;
}
.content:hover .invisible {
visibility: visible;
}
<div class="content">
<div class="invisible">
<span>Text text text</span>
</div>
</div>
请确保添加父div,否则在Chrome 23+上将无法使用。
答案 3 :(得分:0)
.invisible{
opacity: 0;
border: 2px solid red;
transition: all 1s;
}
.invisible:hover{
opacity: 1;
transition: all 1.5s;
}
<div class="invisible">
Text text text
</div>