一款CSS3实现多功能下拉菜单(带分享按)的教程


Posted in HTML / CSS onNovember 05, 2014

今天要分享的这款菜单是基于CSS3的下拉菜单,功能非常强大,下拉菜单中不仅拥有背景色渐变的菜单项,而且还带有分享按钮的菜单项,为了让菜单更加美观,每一个菜单项都带有非常漂亮的小图标,而且在下拉菜单中还有鼠标滑过缩进的动画特效。

一款CSS3实现多功能下拉菜单(带分享按)的教程

接下来我们来具体解说一下实现这款CSS3下拉菜单原理和过程,代码主要是HTML和CSS。

首先是HTML代码,主要是两部分,左侧的下拉菜单项和右侧的分享按钮菜单,分别用了一个ul li列表:

HTML代码:

XML/HTML Code复制内容到剪贴板
  1. <ul class=”menu-function”>  
  2. <li>  
  3. <a href=”" title=”">CATEGORIES</a>  
  4. <ul class=”dropdown-menu categories”>  
  5. <li><a href=”" title=”">Design</a></li>  
  6. <li><a href=”" title=”">Freebies</a></li>  
  7. <li><a href=”" title=”">Tutorials</a></li>  
  8. <li><a href=”" title=”">Coding</a></li>  
  9. <li><a href=”" title=”">Inspiration</a></li>  
  10. <li><a href=”" title=”">WordPress</a></li>  
  11. <li><a href=”" title=”">Resources</a></li>  
  12. </ul>  
  13. </li>  
  14. <li><a href=”" title=”">SHOP</a></li>  
  15. <li id=”search”>  
  16. <a href=”#search” title=”">SEARCH</a>  
  17. </li>  
  18. <li id=”search-hidden”>  
  19. <input type=”text” name=”" id=”"><a href=”#search-hidden” title=”"></a>  
  20. </li>  
  21. </ul>  
  22. <ul class=”menu-share”>  
  23. <li>  
  24. <a href=”" title=”">FOLLOW US</a>  
  25. <ul class=”dropdown-menu follow”>  
  26. <li><a href=”" title=”">RSS</a></li>  
  27. <li><a href=”" title=”">Twitter</a></li>  
  28. <li><a href=”" title=”">Facebook</a></li>  
  29. <li><a href=”" title=”">Google+</a></li>  
  30. <li><a href=”" title=”">Dribbble</a></li>  
  31. </ul>  
  32. </li>  
  33. <li>  
  34. <a href=”" title=”">SHARE</a>  
  35. <ul class=”dropdown-menu share”>  
  36. <li><a href=”" title=”">Facebook</a></li>  
  37. <li><a href=”" title=”">Twitter</a></li>  
  38. <li><a href=”" title=”">Google+</a></li>  
  39. </ul>  
  40. </li>  
  41. </ul>  

这个ul结构支撑了下拉菜单的基本骨架,应该还算普通。

接下来是CSS3代码,是实现这款CSS3下拉菜单的关键:

CSS3代码:

CSS Code复制内容到剪贴板
  1. .page-menu-wrapper > ul > li {   
  2. positionrelative;   
  3. floatleft;   
  4. border-left1px solid #3d61a2;   
  5. border-right1px solid #3d61a2;   
  6. margin-right: -1px;   
  7. }   
  8. .menu-function {   
  9. floatleft;   
  10. }   
  11. .menu-share {   
  12. floatrightright;   
  13. }   
  14. .page-menu-wrapper > .menu-function > li:first-child {   
  15. border-leftnone;   
  16. }   
  17. .page-menu-wrapper > .menu-share > li:last-child {   
  18. border-rightnone;   
  19. }   
  20. .page-menu-wrapper a {   
  21. positionrelative;   
  22. displayblock;   
  23. padding: 0 15px;   
  24. transition: all .3s ease-out;   
  25. }   
  26. .page-menu-wrapper > ul > li:hover > a {   
  27. color#3d61a2;   
  28. background-color#fff;   
  29. }   
  30. .page-menu-wrapper > ul > li:hover .dropdown-menu {   
  31. displayblock;   
  32. }   
  33. .dropdown-menu {   
  34. displaynone;   
  35. positionabsolute;   
  36. width260px;   
  37. font-size18px;   
  38. font-weightbold;   
  39. text-alignleft;   
  40. background-color#fff;   
  41. }   
  42. .dropdown-menu.categories a {   
  43. color#000;   
  44. }   
  45. .dropdown-menu.categories a:hover {   
  46. color#5bc4be;   
  47. margin-left10px;   
  48. }   
  49. #search:target a[href="#search"] {   
  50. displaynone;   
  51. }   
  52. #search:target ~ #search-hidden {   
  53. displayblock;   
  54. }   
  55. #search-hidden {   
  56. displaynone;   
  57. padding: 0 5px;   
  58. background-color#fff;   
  59. }   
  60. #search-hidden input {   
  61. bordernone;   
  62. line-height24px;   
  63. width180px;   
  64. }   
  65. #search-hidden a {   
  66. floatrightright;   
  67. padding: 0;   
  68. width20px;   
  69. height45px;   
  70. }   
  71. #search-hidden a:before {   
  72. content: “\7d”;   
  73. left: 0;   
  74. color#446cb3;   
  75. }   
  76. .menu-function > li > a,.menu-share > li > a {   
  77. padding-left40px;   
  78. }   
  79. .page-menu-wrapper a:before {   
  80. positionabsolute;   
  81. left15px;   
  82. font-family: ‘icomoon’;   
  83. font-stylenormal;   
  84. speaknone;   
  85. font-weightnormal;   
  86. font-smoothing: antialiased;   
  87. font-size18px;   
  88. vertical-alignmiddle;   
  89. }   
  90. .menu-function > li:nth-child(1) > a:before {   
  91. content: “\e048″;   
  92. }   
  93. .menu-function > li:nth-child(2) > a:before {   
  94. content: “\3b”;   
  95. }   
  96. .menu-function > li:nth-child(3) > a:before {   
  97. content: “\7d”;   
  98. }   
  99. .menu-share > li:nth-child(1) > a:before {   
  100. content: “\e0a2″;   
  101. }   
  102. .menu-share > li:nth-child(2) > a:before {   
  103. content: “\e05b”;   
  104. }   
  105. /*follow*/  
  106. .dropdown-menu.follow {   
  107. width223px;   
  108. }   
  109. .dropdown-menu.follow a {   
  110. padding-left35px;   
  111. font-size14px;   
  112. }   
  113. .dropdown-menu.follow a:before {   
  114. left10px;   
  115. }   
  116. .dropdown-menu.follow li:nth-child(1) a:before {   
  117. content: “\e0a5″;   
  118. }   
  119. .dropdown-menu.follow li:nth-child(2) a:before {   
  120. content: “\e0a2″;   
  121. }   
  122. .dropdown-menu.follow li:nth-child(3) a:before {   
  123. content: “\e04c”;   
  124. }   
  125. .dropdown-menu.follow li:nth-child(4) a:before {   
  126. content: “\e022″;   
  127. }   
  128. .dropdown-menu.follow li:nth-child(5) a:before {   
  129. content: “\e03d”;   
  130. }   
  131. .dropdown-menu.follow li:nth-child(1) a {   
  132. color#ffaa31;   
  133. }   
  134. .dropdown-menu.follow li:nth-child(2) a {   
  135. color#07beed;   
  136. }   
  137. .dropdown-menu.follow li:nth-child(3) a {   
  138. color#314d91;   
  139. }   
  140. .dropdown-menu.follow li:nth-child(4) a {   
  141. color#2d2d2d;   
  142. }   
  143. .dropdown-menu.follow li:nth-child(5) a {   
  144. color#e84788;   
  145. }   
  146. .dropdown-menu.follow li:nth-child(1):hover {   
  147. background-color#ffaa31;   
  148. }   
  149. .dropdown-menu.follow li:nth-child(2):hover {   
  150. background-color#07beed;   
  151. }   
  152. .dropdown-menu.follow li:nth-child(3):hover {   
  153. background-color#314d91;   
  154. }   
  155. .dropdown-menu.follow li:nth-child(4):hover {   
  156. background-color#2d2d2d;   
  157. }   
  158. .dropdown-menu.follow li:nth-child(5):hover {   
  159. background-color#e84788;   
  160. }   
  161. .dropdown-menu.follow li:hover a {   
  162. color#fff;   
  163. margin-left10px;   
  164. }   
  165. .dropdown-menu.share {   
  166. width120px;   
  167. rightright:0;   
  168. }   
  169. .dropdown-menu.share a {   
  170. margin10px;   
  171. line-height26px;   
  172. font-size12px;   
  173. padding-left20px;   
  174. border1px solid #cbcbcb;   
  175. border-radius: 2px;   
  176. color#4c4c4c;   
  177. background-color#efefef;   
  178. }   
  179. .dropdown-menu.share a:hover {   
  180. background-color#fff;   
  181. }   
  182. .dropdown-menu.share li a:before {   
  183. font-size12px;   
  184. left5px;   
  185. }   
  186. .dropdown-menu.share li:nth-child(1) a:before {   
  187. content: “\e04c”;   
  188. color#314d91;   
  189. }   
  190. .dropdown-menu.share li:nth-child(2) a:before {   
  191. content: “\e0a2″;   
  192. color#07beed;   
  193. }   
  194. .dropdown-menu.share li:nth-child(3) a:before {   
  195. content: “\e022″;   
  196. color#2d2d2d;   
  197. }   
  198. @font-face {   
  199. font-family: ‘icomoon’;   
  200. src:url(‘fonts/icomoon.eot’);   
  201. src:url(‘fonts/icomoon.eot?#iefix’) format(‘embedded-opentype’),   
  202. url(‘fonts/icomoon.svg#icomoon’) format(‘svg’),   
  203. url(‘fonts/icomoon.woff’) format(‘woff’),   
  204. url(‘fonts/icomoon.ttf’) format(‘truetype’);   
  205. font-weightnormal;   
  206. font-stylenormal;   
  207. }  

这个代码比较复杂,建议下载源码研究。谢谢阅读,希望能帮到大家,请继续关注三水点靠木,我们会努力分享更多优秀的文章。

HTML / CSS 相关文章推荐
CSS3制作精致的照片墙特效
Jun 07 HTML / CSS
css3实现超炫风车特效
Nov 12 HTML / CSS
css3针对移动端卡顿问题的解决(动画性能优化)
Feb 14 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
Apr 04 HTML / CSS
html5 button autofocus 属性介绍及应用
Jan 04 HTML / CSS
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
Jan 09 HTML / CSS
HTML5之SVG 2D入门4—笔画与填充
Jan 30 HTML / CSS
HTML5 新标签全部总汇(推荐)
Jun 13 HTML / CSS
HTML5不支持标签和新增标签详解
Jun 27 HTML / CSS
HTML5 拖放(Drag 和 Drop)详解与实例代码
Sep 14 HTML / CSS
详解px单位html5响应式方案
Mar 08 HTML / CSS
HTML页面滚动时部分内容位置固定不滚动的实现
Apr 14 HTML / CSS
实例教程 纯CSS3打造非常炫的加载动画效果
Nov 05 #HTML / CSS
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
Nov 05 #HTML / CSS
支持IE8的纯css3开发的响应式设计动画菜单教程
Nov 05 #HTML / CSS
一款利用纯css3实现的360度翻转按钮的实例教程
Nov 05 #HTML / CSS
css实例教程 一款纯css3实现的超炫动画背画特效
Nov 05 #HTML / CSS
一款纯css3实现的非常实用的鼠标悬停特效演示
Nov 05 #HTML / CSS
利用css3实现的简单的鼠标悬停按钮
Nov 04 #HTML / CSS
You might like
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
php curl 上传文件代码实例
2015/04/27 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
33种Javascript 表格排序控件收集
2009/12/03 Javascript
取选中的radio的值
2010/01/11 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
Javascript中window.name属性详解
2020/11/19 Javascript
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
详解小白之KMP算法及python实现
2019/04/04 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
python中rc1什么意思
2020/06/19 Python
副总经理工作职责
2013/11/28 职场文书
淘宝网店营销策划书
2014/01/11 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
2015年三万活动总结
2015/03/25 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
东京审判观后感
2015/06/01 职场文书
解约证明模板
2015/06/19 职场文书
《观潮》教学反思
2016/02/17 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
详解CSS3浏览器兼容
2022/12/24 HTML / CSS