一款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学习心得分享
Aug 19 HTML / CSS
CSS3 Columns分列式布局方法简介
May 03 HTML / CSS
CSS3实现渐变背景兼容问题
May 06 HTML / CSS
CSS3 真的会替代 SCSS 吗
Mar 09 HTML / CSS
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
Jan 09 HTML / CSS
为你的html5网页添加音效示例
Apr 03 HTML / CSS
浅谈基于HTML5的在线视频播放方案
Feb 18 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
Jan 09 HTML / CSS
HTML5自定义元素播放焦点图动画的实现
Sep 25 HTML / CSS
boostrap modal 闪现问题的解决方法
Sep 01 HTML / CSS
CSS 新特性 contain控制页面的重绘与重排问题
Apr 30 HTML / CSS
CSS3实现指纹特效代码
Mar 17 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
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
学习ExtJS border布局
2009/10/08 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
python实现折半查找和归并排序算法
2017/04/14 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
Python join()函数原理及使用方法
2020/11/14 Python
python中xlutils库用法浅析
2020/12/29 Python
自考毕业自我鉴定
2014/03/18 职场文书
保密承诺书范文
2014/03/27 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
初中语文教师研修日志
2015/11/13 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
springcloud整合seata
2022/05/20 Java/Android