html - 将动画放在有内容的伪元素上

标签 html css transition

我对一些 CSS 伪元素有一些小问题。 我正在尝试制作自定义工具提示,在悬停时淡入和淡出,但它似乎不起作用。

伪元素从 data-title HTML5 标记获取内容。


我已经尝试过这个,但没有任何运气:

span:before, span:after {
   opacity: 0;
   -webkit-transition: all .2s;
   -moz-transition: all .2s;
   -o-transition: all .2s;
   -ms-transition: all .2s;
   transition: all .2s;
}

span:hover:after {
   content: attr(data-title);
   display: block;
   opacity: 1;
   position: absolute;
   width: 100px;
   height: 30px;
   line-height: 30px;
   text-align: center;
   color: #FFF;
   background: rgba(0,0,0,0.75);
   border-radius: 3px;
   left: -20px;
   top: 46px;
}

工具提示正确显示,但没有过渡。我还尝试在 span:before, span:after 部分添加 content: "" ,但也没有任何运气。


这是 fiddle :http://jsfiddle.net/nDq9f/3/

谁能帮帮我?

最佳答案

我已经修好了!

我但所有样式(显示、宽度、高度等...)都在span:before、span:after部分,而不是在 >:hover 部分。然后一切都很完美!

您可以在这篇文章的底部看到 fiddle 。

span:before, span:after {
   content: attr(data-title);
   display: block;
   position: absolute;
   width: 100px;
   height: 30px;
   line-height: 30px;
   text-align: center;
   color: #FFF;
   background: rgba(0,0,0,0.75);
   border-radius: 3px;
   left: -20px;
   top: 46px;
   opacity: 0;
   -webkit-transition: all .2s;
   -moz-transition: all .2s;
   -o-transition: all .2s;
   -ms-transition: all .2s;
   transition: all .2s;
}

span:hover:after {
   opacity: 1;
}

我还添加了一个 pointer-events: none;,这样当工具提示具有 opacity: 0; 时,悬停在其上时就无法显示工具提示了

Here's the js Fiddle

关于html - 将动画放在有内容的伪元素上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20999029/

相关文章:

html - 我怎样才能使用 flexbox 做这个 3 div 布局?

css - 四列横排形式,bootstrap 3

jQuery 在 img/text 悬停时从左到右滑动 div

javascript - 在列表的初始渲染上动画列表项(交错)

CSS Transition 从左到右有效,从右到左无效

html - 网站标志出现在 I.E.7-8 中的背景图片后面

java - 从 JSF 中的表单中排除字段

html - 菜单中的电话号码(仅限手机)

javascript - 基于 Javascript 可用性触发 CSS 行为的安全方法

jquery - Javascript 动画/CSS 过渡上的 Renderbug Chrome(OS X 上为 36)