一款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中border-radius属性设定圆角的使用技巧
May 10 HTML / CSS
CSS3 clip-path 用法介绍详解
Mar 01 HTML / CSS
CSS3 animation实现逐帧动画效果
Jun 02 HTML / CSS
CSS3实现自定义Checkbox特效实例代码
Apr 24 HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
Jul 16 HTML / CSS
html5桌面通知(Web Notifications)实例解析
Jul 07 HTML / CSS
html5+css3进度条倒计时动画特效代码【推荐】
Mar 08 HTML / CSS
html5手机端页面可以向右滑动导致样式受影响的问题
Jun 20 HTML / CSS
canvas绘制太极图的实现示例
Apr 29 HTML / CSS
使用SVG实现提示框功能的示例代码
Jun 05 HTML / CSS
CSS3鼠标悬浮过渡缩放效果
Apr 17 HTML / CSS
Unicode中的CJK(中日韩统一表意文字)字符小结
Dec 06 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
PHP4实际应用经验篇(5)
2006/10/09 PHP
php header()函数使用说明
2008/07/10 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
php针对cookie操作的队列操作类实例
2014/12/10 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
jquery操作select大全
2014/04/25 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
python实现梯度下降算法
2020/03/24 Python
Python jieba库用法及实例解析
2019/11/04 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
盛大二次面试题
2016/11/18 面试题
Java语言的优势
2015/01/10 面试题
公务员个人自我评价分享
2013/11/06 职场文书
弘扬职业精神演讲稿
2014/03/20 职场文书
影子教师研修方案
2014/06/14 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript
Python&Matlab实现樱花的绘制
2022/04/07 Python