在 :hover 上显示隐藏的 div,并在 CSS / CSS3 鼠标移出后使 div 保持可见 5 秒

Show hidden div on :hover, and make div stay visible for 5 seconds after mouseout on CSS / CSS3

我的 html 页面上有以下 div

<div class="tooltip">
    <span>content</span>
</div>

以及以下 css 脚本:

.tooltip span {
    display:none;
}
.tooltip:hover span {
    display:inline;
}

有没有办法让 span 在鼠标离开 div 后保持可见 5 秒以上?我尝试这样做的原因是因为此工具提示中包含一些内容,例如链接。

纯粹的CSS

对不起,我忘了。 Display 不受转换的影响。

改用opacity

使用转换:

.tooltip span {
    opacity: 0;
    transition: opacity 0s 1s;
}
.tooltip:hover span {
    opacity: 1;
    transition: opacity 0s;
}

.tooltip span {
  opacity: 0;
  transition: opacity 0s 5s;
}

.tooltip:hover span {
  opacity: 1;
  transition: opacity 0s;
}
<div class="tooltip">
  <span>content</span>
</div>

如果你想让它淡出,使用这个:

.tooltip span {
    opacity: 0;
    transition: opacity 0s 5s;
}
.tooltip:hover span {
    opacity: 1;
    transition: opacity 0s;
}

.tooltip span {
  opacity: 0;
  border: 1px solid transparent;
  transition: all .4s 4.6s;
}

.tooltip:hover span {
  opacity: 1;
  border: 1px solid #000;
  opacity: 1;
  transition: all .4s;
}
<div class="tooltip">
  <span>content</span>
</div>

UPDATE 如果您有多个属性,请使用 all。注意:您通常需要有一个初始的 属性 和一个更改的 属性。例如。参见 JSFiddle(工作)

jQuery解法:

$( ".tooltip" ).mouseover(function() {
   $('.tooltip span').show();
  setTimeout(function(){
    $('.tooltip span').hide('slow', function(){
 });// or fade, css display however you'd like.
}, 5000); // set visible time
});
.tooltip span {
    display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div class="tooltip">
  tooltip
    <span>content</span>
</div>

这是我的尝试!

HTML

<div class="tooltip">
  Title
  <span> - content</span>
</div>

CSS

.tooltip span {
  visibility: hidden;
}

.tooltip:hover span {
  visibility: visible;
}

.tooltip span:not(:hover) {
  visiblity: hidden;
  transition: visibility 5s;
}

JSFiddle:https://jsfiddle.net/mpx3m1v4/

纯粹css。这并不完美。试试这个。

.tooltip span {
    //display:none;
    display: block;
}
.tooltip:hover span {
    //display:inline;
    -webkit-animation: opacity1 0.1s 1 forwards;
    animation: opacity1 0.1s 1 forwards;
}

.tooltip:not(:hover) span{
  -webkit-animation: opacity0 0.1s 1 forwards;
    animation: opacity0 0.1s 1 forwards;
    -webkit-animation-delay: 5s;
    animation-delay: 5s; 
}

@-webkit-keyframes opacity1 {
    to {opacity: 1; height: auto; width: auto;}
}
@keyframes opacity1 {
    to {opacity: 1; height: auto; width: auto;}
}

@-webkit-keyframes opacity0 {
    to {opacity: 0; height: 0; width: 0;}
}
@keyframes opacity0 {
    to {opacity: 0; height: 0; width: 0;}
}