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

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

HTML代码:

  1. <div id="nav">
  2. <a id="nav-main"><span><i class="icon-home"></i> 主界面</span></a>
  3. <a id="nav-sum"><span><i class="icon-laptop"></i> 统计界面</span></a>
  4. </div>

CSS代码:

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

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

CSS3实现鼠标悬停扩展效果的更多相关文章

  1. CSS3按钮鼠标悬浮光圈效果

    1 .HTML相关知识点  HTML(超文本标记语言)是网页的核心.首先你要学会,不要害怕,HTML很容易学习的,刚开始多记多练,但是到最后还是要自己深入专研,简单的入门是很快,但学好HTML是成为W ...

  2. 简单jquery 鼠标悬停提示效果

    记得自己引入jq插件哦~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  3. 利用CSS3实现鼠标悬停在图片上图片缓慢缩放的两种方法

    1.改变background-size属性 将图片作为某个html元素的背景图片,用transition属性改变图片的大小. .container{ background-size: 100% 100 ...

  4. Css3 常见鼠标滑过效果集合

    1.演示地址: http://yaochuxia.github.io/hover/#

  5. [刘阳Java]_CSS鼠标悬停

    小白在学习前端技术时候,一定会在刚开始的时候学习CSS2和CSS3的相关知识.这篇内容给大家介绍一个CSS鼠标悬停的效果.大家可以先看下面的效果图,然后我们在说一下实现的效果要求吧 上图效果非常简单和 ...

  6. 兄弟连教育分享:用CSS实现鼠标悬停提示的方法

    兄弟连教育分享:用CSS实现鼠标悬停提示的方法 本文,兄弟连HTML5培训,分享了纯CSS实现鼠标悬停提示的方法.给大家供大家参考.具体分析如下: 这是一款比较漂亮的鼠标悬停提示效果,用纯CSS代码实 ...

  7. 鼠标悬停css3动画效果

    下载Demo 效果预览 html: <!DOCTYPE html> <html lang="en"> <head> <meta chars ...

  8. css3鼠标悬停图片渐显飞入效果

    body程序: <div id="bei"> <div id="img"><img src="xianzi.png&qu ...

  9. CSS3鼠标悬停图片上浮显示描述代码

    效果:http://hovertree.com/texiao/css3/20/ 效果图: 代码如下: <!doctype html> <html lang="zh" ...

随机推荐

  1. Sobel算法

    最近看了一些Sobel算法,并试了一下,源码如下: private void Sobel(Bitmap img) { int width = img.Width; int height = img.H ...

  2. IIS将http强转为https(重定向和重写)

    最近接到一个需求,客户希望无论是http还是https请求都可以访问,并且http能转换成https.研究了一圈发现iis的重定向和重写都可以实现http强转https,记录一下. 用到的东东: In ...

  3. CentOS目录与文件操作

    pwd:查看当前目录 touch:创建文件 touch a.c ls:查看当前目录下文件,也可以ls /tmp查看tmp下的文件 rm:删除文件 rm a.c,也可以rm a.c -rf 强制删除 c ...

  4. 解决在cmder中bash(WSL)上下箭头不能使用问题

    有三种解决方式,第一种方式最简单实用 安装新版本wslbridge 这个解决方法最简单,最实用,下载第三方wslbridge,安装即可使用. 这时再进入cmder,运行bash.exe,可以发现上下左 ...

  5. 和Webbrowser进行简单交互

    作为第一篇,简单的控件使用就不说了. 直接从简单的交互开始吧! C#使用网页中已有的js函数 webBrowser.Document.InvokeScript("Stop");// ...

  6. 多线程《八》线程queue

    一 线程queue queue is especially useful in threaded programming when information must be exchanged safe ...

  7. react中使用echarts(人物关系图)

    项目中有时会用到echarts,可能不同的框架中语法稍有变通,前几天在react项目中遇到,写此篇以作记录. 不同的charts语法跟支持不同,本篇"echarts": " ...

  8. Kubernetes -- Server 部署

    1.  Node 节点配置文件 1.1 下载相关的软件 wget https://dl.k8s.io/v1.13.1/kubernetes-server-linux-amd64.tar.gz wget ...

  9. ubuntu 16.4安装toolsbelt heroku

    https://devcenter.heroku.com/articles/getting-started-with-python#set-up # Run this from your termin ...

  10. [agc008f] Black Radius 树形dp

    Description ​ 给你一棵有NN个节点的树,节点编号为11到NN,所有边的长度都为11 ​ "全"对某些节点情有独钟,这些他喜欢的节点的信息会以一个长度为NN的字符串ss ...