纯CSS实现的帮助提示信息效果

jerry CSS 2015年08月20日 收藏

我们在网页上有时会针对一些内容做详细说明,以便更友好的服务用户。最常见的是在网站上加个用户使用帮助,但是一般需要跳转页面。今天我给大家介绍只需将鼠标滑向一个小问号上,就会出现帮助提示信息的效果。

其实本文要分享的就是我们常见到的提示信息工具tooltip,它能够为我们的页面提供非常漂亮的提示信息,让内容更加直观,提升用户的体验。我们可以在网上查到很多关于tooltip的文章,大多数是提供基于javascript的插件,而本文我们要讲的是一个只需要CSS代码,无需任何插件就能实现的漂亮、简单、使用的信息提示Tooltip。

HTML

首先第一步我们准备提示工具的提示内容html结构:

  1. <div class="help-tip">
  2. <p>这是一个纯CSS制作,基于CSS3实现的提示信息效果。</p>
  3. </div>

代码<p>中的内容将作为一个块展示提示信息,而.help-tip将会包含一个带问号的小圆圈效果。

代码<p>中的内容默认是不显示的,当鼠标滑向问号时,通过CSS才能展示提示信息,它可以包含文字、图片、链接等各种html代码。具体可以看演示DEMO。

CSS

所有的CSS都写在一个style.css文件中,大家可以下载文件包查看,下面介绍下主要核心的CSS代码:

  1. .help-tip{
  2. position: absolute;
  3. top: 18px;
  4. right: 18px;
  5. text-align: center;
  6. background-color: #BCDBEA;
  7. border-radius: 50%;
  8. width: 24px;
  9. height: 24px;
  10. font-size: 14px;
  11. line-height: 26px;
  12. cursor: default;
  13. }
  14. .help-tip:before{
  15. content:'?';
  16. font-weight: bold;
  17. color:#fff;
  18. }
  19. .help-tip:hover p{
  20. display:block;
  21. transform-origin: 100% 0%;
  22. -webkit-animation: fadeIn 0.3s ease-in-out;
  23. animation: fadeIn 0.3s ease-in-out;
  24. }
  25. .help-tip p{
  26. display: none;
  27. text-align: left;
  28. background-color: #1E2021;
  29. padding: 20px;
  30. width: 300px;
  31. position: absolute;
  32. border-radius: 3px;
  33. box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2);
  34. right: -4px;
  35. color: #FFF;
  36. font-size: 13px;
  37. line-height: 1.4;
  38. }
  39. .help-tip p:before{
  40. position: absolute;
  41. content: '';
  42. width:0;
  43. height: 0;
  44. border:6px solid transparent;
  45. border-bottom-color:#1E2021;
  46. right:10px;
  47. top:-12px;
  48. }
  49. .help-tip p:after{
  50. width:100%;
  51. height:40px;
  52. content:'';
  53. position: absolute;
  54. top:-40px;
  55. left:0;
  56. }
  57. @-webkit-keyframes fadeIn {
  58. 0% {
  59. opacity:0;
  60. transform: scale(0.6);
  61. }
  62. 100% {
  63. opacity:100%;
  64. transform: scale(1);
  65. }
  66. }
  67. @keyframes fadeIn {
  68. 0% { opacity:0; }
  69. 100% { opacity:100%; }
  70. }

代码中使用了CSS3的很多特性,使用了:before伪类创建问号,使用了border-radius: 50%创建问号背后的圆圈,省去了制作图片的麻烦,代码中还是用了css3动画效果,透明度变化等等。

值得注意的是,我们将.help-tip的position设置为absolute,是针对它的父级元素.demo的position属性为relative。这样才能保证元素间的定位。

下载地址