CSS3如何实现鼠标悬停显示扩展内容

啊,小雪,小雪,来了,来了。从微微的凉风中,从傍晚的喧闹中来了!像春风抖落万树梨花,像天女撒下漫天白絮……你不飘飘悠悠,因为那是骄傲的象征;你不轻轻起舞,因为那是胆小的缩影,听,沙沙沙沙、沙沙沙沙……我好像坐在屋里听那春雨的歌声。

我们在做导航标签的时候,有时会出现空间过于拥挤需要隐藏部分内容的情况,所以在这里我自己写了一个鼠标悬停显示扩展内容的效果,如下图所示。


总的来说效果还是比较好实现,但是比较头疼的是三角部分使用了伪元素::after,而对父元素设置 over-flow:hidden 时也会把伪元素给隐藏掉。最后想的办法是把文字和图标用一个 <span> 包裹住然后对其设置over-flow属性。

HTML代码:

CSS Code复制内容到剪贴板
  1. <divid="nav">
  2. <aid="nav-main"><span><iclass="icon-home"></i>主界面</span></a>
  3. <aid="nav-sum"><span><iclass="icon-laptop"></i>统计界面</span></a>
  4. </div>
  5. CSS代码:
  6. /*******************************************************************************/
  7. /***********************************nav**************************************/
  8. /*******************************************************************************/
  9. #nav{
  10. box-sizing:border-box;
  11. width:200px;
  12. height:100%;
  13. position:fixed;
  14. padding-top:80px;
  15. }
  16. #nava{
  17. display:block;
  18. width:30px;
  19. height:52px;
  20. position:relative;
  21. margin-top:50px;
  22. }
  23. #navaspan{
  24. display:inline-block;
  25. width:46px;
  26. height:50px;
  27. font-size:1em;
  28. font-weight:600;
  29. color:rgba(255,255,255,0.9);
  30. text-indent:3px;
  31. line-height:52px;
  32. cursor:pointer;
  33. overflow:hidden;
  34. }
  35. #navaspani{
  36. font-size:1.3em;
  37. }
  38. #nava::after{
  39. content:'';
  40. display:block;
  41. width:0;
  42. height:0;
  43. position:absolute;
  44. rightright:-32px;
  45. bottombottom:0;
  46. border-top:26pxsolidtransparent;
  47. border-right:16pxsolidtransparent;
  48. border-bottom:26pxsolidtransparent;
  49. }
  50. #nav-main{
  51. background-color:rgb(211,83,80);
  52. }
  53. #nav-sum{
  54. background-color:rgb(0,158,163);
  55. }
  56. #nav-main::after{
  57. border-left:16pxsolidrgb(211,83,80);
  58. }
  59. #nav-sum::after{
  60. border-left:16pxsolidrgb(0,158,163);
  61. }
  62. #nava:hover{
  63. -webkit-animation:extend-a0.5s;
  64. -moz-animation:extend-a0.5s;
  65. animation:extend-a0.5s;
  66. width:100px;
  67. }
  68. #navaspan:hover{
  69. -webkit-animation:extend-span0.5s;
  70. -moz-animation:extend-span0.5s;
  71. animation:extend-span0.5s;
  72. width:116px;
  73. }
  74. /*******************a扩展效果******************/
  75. @-webkit-keyframesextend-a{
  76. 0%{
  77. width:30px;
  78. }
  79. 100%{
  80. width:100px;
  81. }
  82. }
  83. @-moz-keyframesextend-a{
  84. 0%{
  85. width:30px;
  86. }
  87. 100%{
  88. width:100px;
  89. }
  90. }
  91. @keyframesextend-a{
  92. 0%{
  93. width:30px;
  94. }
  95. 100%{
  96. width:100px;
  97. }
  98. }
  99. /*******************span扩展效果******************/
  100. @-webkit-keyframesextend-span{
  101. 0%{
  102. width:46px;
  103. }
  104. 100%{
  105. width:116px;
  106. }
  107. }
  108. @-moz-keyframesextend-span{
  109. 0%{
  110. width:46px;
  111. }
  112. 100%{
  113. width:116px;
  114. }
  115. }
  116. @keyframesextend-span{
  117. 0%{
  118. width:46px;
  119. }
  120. 100%{
  121. width:116px;
  122. }
  123. }

其中图标使用的是 font-awesome 提供的API,使用时引入它的css文件即可。

以上所述是小编给大家介绍的CSS3实现鼠标悬停显示扩展内容 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

本文CSS3如何实现鼠标悬停显示扩展内容到此结束。人,一简单就欢乐,但欢乐的人寥寥无几;一复杂就痛苦,可痛苦的人却熙熙攘攘。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
基于CSS 判断鼠标进入的方向

CSS如何实现鼠标移至图片上显示遮罩层效果

html+css+javascript如何实现跟随鼠标移动显示选中效果

如何利用HTML+CSS如何实现跟踪鼠标移动功能

详解CSS如何实现仿Windows10鼠标照亮边框效果