一款CSS3实现多功能下拉菜单(带分享按)的教程
程序员文章站
2022-03-13 09:18:42
这篇文章主要为大家介绍了下拉菜单,这款菜单是基于CSS3的下拉菜单,功能非常强大,下拉菜单中不仅拥有背景色渐变的菜单项,而且还带有分享按钮的菜单项,为了让菜单更加美观,每一个... 14-11-05...
今天要分享的这款菜单是基于css3的下拉菜单,功能非常强大,下拉菜单中不仅拥有背景色渐变的菜单项,而且还带有分享按钮的菜单项,为了让菜单更加美观,每一个菜单项都带有非常漂亮的小图标,而且在下拉菜单中还有鼠标滑过缩进的动画特效。
接下来我们来具体解说一下实现这款css3下拉菜单原理和过程,代码主要是html和css。
首先是html代码,主要是两部分,左侧的下拉菜单项和右侧的分享按钮菜单,分别用了一个ul li列表:
html代码:
xml/html code复制内容到剪贴板
- <ul class=”menu-function”>
- <li>
- <a href=”" title=”">categories</a>
- <ul class=”dropdown-menu categories”>
- <li><a href=”" title=”">design</a></li>
- <li><a href=”" title=”">freebies</a></li>
- <li><a href=”" title=”">tutorials</a></li>
- <li><a href=”" title=”">coding</a></li>
- <li><a href=”" title=”">inspiration</a></li>
- <li><a href=”" title=”">wordpress</a></li>
- <li><a href=”" title=”">resources</a></li>
- </ul>
- </li>
- <li><a href=”" title=”">shop</a></li>
- <li id=”search”>
- <a href=”#search” title=”">search</a>
- </li>
- <li id=”search-hidden”>
- <input type=”text” name=”" id=”"><a href=”#search-hidden” title=”"></a>
- </li>
- </ul>
- <ul class=”menu-share”>
- <li>
- <a href=”" title=”">follow us</a>
- <ul class=”dropdown-menu follow”>
- <li><a href=”" title=”">rss</a></li>
- <li><a href=”" title=”">twitter</a></li>
- <li><a href=”" title=”">facebook</a></li>
- <li><a href=”" title=”">google+</a></li>
- <li><a href=”" title=”">dribbble</a></li>
- </ul>
- </li>
- <li>
- <a href=”" title=”">share</a>
- <ul class=”dropdown-menu share”>
- <li><a href=”" title=”">facebook</a></li>
- <li><a href=”" title=”">twitter</a></li>
- <li><a href=”" title=”">google+</a></li>
- </ul>
- </li>
- </ul>
这个ul结构支撑了下拉菜单的基本骨架,应该还算普通。
接下来是css3代码,是实现这款css3下拉菜单的关键:
css3代码:
css code复制内容到剪贴板
- .page-menu-wrapper > ul > li {
- position: relative;
- float: left;
- border-left: 1px solid #3d61a2;
- border-right: 1px solid #3d61a2;
- margin-right: -1px;
- }
- .menu-function {
- float: left;
- }
- .menu-share {
- float: rightright;
- }
- .page-menu-wrapper > .menu-function > li:first-child {
- border-left: none;
- }
- .page-menu-wrapper > .menu-share > li:last-child {
- border-right: none;
- }
- .page-menu-wrapper a {
- position: relative;
- display: block;
- padding: 0 15px;
- transition: all .3s ease-out;
- }
- .page-menu-wrapper > ul > li:hover > a {
- color: #3d61a2;
- background-color: #fff;
- }
- .page-menu-wrapper > ul > li:hover .dropdown-menu {
- display: block;
- }
- .dropdown-menu {
- display: none;
- position: absolute;
- width: 260px;
- font-size: 18px;
- font-weight: bold;
- text-align: left;
- background-color: #fff;
- }
- .dropdown-menu.categories a {
- color: #000;
- }
- .dropdown-menu.categories a:hover {
- color: #5bc4be;
- margin-left: 10px;
- }
- #search:target a[href="#search"] {
- display: none;
- }
- #search:target ~ #search-hidden {
- display: block;
- }
- #search-hidden {
- display: none;
- padding: 0 5px;
- background-color: #fff;
- }
- #search-hidden input {
- border: none;
- line-height: 24px;
- width: 180px;
- }
- #search-hidden a {
- float: rightright;
- padding: 0;
- width: 20px;
- height: 45px;
- }
- #search-hidden a:before {
- content: “\7d”;
- left: 0;
- color: #446cb3;
- }
- .menu-function > li > a,.menu-share > li > a {
- padding-left: 40px;
- }
- .page-menu-wrapper a:before {
- position: absolute;
- left: 15px;
- font-family: ‘icomoon’;
- font-style: normal;
- speak: none;
- font-weight: normal;
- font-smoothing: antialiased;
- font-size: 18px;
- vertical-align: middle;
- }
- .menu-function > li:nth-child(1) > a:before {
- content: “\e048′;
- }
- .menu-function > li:nth-child(2) > a:before {
- content: “\3b”;
- }
- .menu-function > li:nth-child(3) > a:before {
- content: “\7d”;
- }
- .menu-share > li:nth-child(1) > a:before {
- content: “\e0a2′;
- }
- .menu-share > li:nth-child(2) > a:before {
- content: “\e05b”;
- }
- /*follow*/
- .dropdown-menu.follow {
- width: 223px;
- }
- .dropdown-menu.follow a {
- padding-left: 35px;
- font-size: 14px;
- }
- .dropdown-menu.follow a:before {
- left: 10px;
- }
- .dropdown-menu.follow li:nth-child(1) a:before {
- content: “\e0a5′;
- }
- .dropdown-menu.follow li:nth-child(2) a:before {
- content: “\e0a2′;
- }
- .dropdown-menu.follow li:nth-child(3) a:before {
- content: “\e04c”;
- }
- .dropdown-menu.follow li:nth-child(4) a:before {
- content: “\e022′;
- }
- .dropdown-menu.follow li:nth-child(5) a:before {
- content: “\e03d”;
- }
- .dropdown-menu.follow li:nth-child(1) a {
- color: #ffaa31;
- }
- .dropdown-menu.follow li:nth-child(2) a {
- color: #07beed;
- }
- .dropdown-menu.follow li:nth-child(3) a {
- color: #314d91;
- }
- .dropdown-menu.follow li:nth-child(4) a {
- color: #2d2d2d;
- }
- .dropdown-menu.follow li:nth-child(5) a {
- color: #e84788;
- }
- .dropdown-menu.follow li:nth-child(1):hover {
- background-color: #ffaa31;
- }
- .dropdown-menu.follow li:nth-child(2):hover {
- background-color: #07beed;
- }
- .dropdown-menu.follow li:nth-child(3):hover {
- background-color: #314d91;
- }
- .dropdown-menu.follow li:nth-child(4):hover {
- background-color: #2d2d2d;
- }
- .dropdown-menu.follow li:nth-child(5):hover {
- background-color: #e84788;
- }
- .dropdown-menu.follow li:hover a {
- color: #fff;
- margin-left: 10px;
- }
- .dropdown-menu.share {
- width: 120px;
- rightright:0;
- }
- .dropdown-menu.share a {
- margin: 10px;
- line-height: 26px;
- font-size: 12px;
- padding-left: 20px;
- border: 1px solid #cbcbcb;
- border-radius: 2px;
- color: #4c4c4c;
- background-color: #efefef;
- }
- .dropdown-menu.share a:hover {
- background-color: #fff;
- }
- .dropdown-menu.share li a:before {
- font-size: 12px;
- left: 5px;
- }
- .dropdown-menu.share li:nth-child(1) a:before {
- content: “\e04c”;
- color: #314d91;
- }
- .dropdown-menu.share li:nth-child(2) a:before {
- content: “\e0a2′;
- color: #07beed;
- }
- .dropdown-menu.share li:nth-child(3) a:before {
- content: “\e022′;
- color: #2d2d2d;
- }
- @font-face {
- font-family: ‘icomoon’;
- src:url(‘fonts/icomoon.eot’);
- src:url(‘fonts/icomoon.eot?#iefix’) format(‘embedded-opentype’),
- url(‘fonts/icomoon.svg#icomoon’) format(‘svg’),
- url(‘fonts/icomoon.woff’) format(‘woff’),
- url(‘fonts/icomoon.ttf’) format(‘truetype’);
- font-weight: normal;
- font-style: normal;
- }
这个代码比较复杂,建议研究。谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。