乐于分享
好东西不私藏

CSS倾斜3d导航菜单样式!!附源码!

CSS倾斜3d导航菜单样式!!附源码!

效果展示

  完整源码  

HTML
<!DOCTYPE html><htmllang="en"><head>    <metacharset="UTF-8">    <title>CSS倾斜3d导航菜单样式</title>    <metahttp-equiv="X-UA-Compatible"content="IE=edge" />    <linkrel='stylesheet'href='https://netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.css'>    <linkrel="stylesheet"href="./style.css"></head><body>    <divclass="container">        <inputtype="checkbox"class="toggle"id="toggle"checked="checked" /><labelclass="toggle"for="toggle"> Toggle tilt</label>        <divclass="menu">            <divclass="top">                <spanclass="search">                    <inputtype="text">                </span>                <aclass="exit"href="#"tabindex="0"></a>            </div>            <ulclass="middle">                <litabindex="0"><iclass="fa fa-calendar"></i>Calendar</li>                <litabindex="0"><iclass="fa fa-camera"></i>Photos</li>                <litabindex="0"><iclass="fa fa-check-square-o"></i>Tasks</li>                <litabindex="0"><iclass="fa fa-map-marker"></i>Places</li>                <litabindex="0"><iclass="fa fa-codepen"></i>Codepen</li>                <litabindex="0"><iclass="fa fa-dribbble"></i>Dribbble</li>                <litabindex="0"><iclass="fa fa-user"></i>User account</li>                <litabindex="0"><iclass="fa fa-cogs"></i>Settings</li>            </ul>            <divclass="bottom"></div>            <divclass="menu-back"></div>            <divclass="glass-reflection"></div>        </div>    </div></body></html>
style.CSS
@import url("https://fonts.googleapis.com/css?family=Lato");*,*:before,*:after { /* Slow, yes I know :) */  -webkit-box-sizing: border-box;  -moz-box-sizing: border-box;  box-sizing: border-box;}html,body {  margin0;  padding0;  width100%;  height100%;  font-family: Lato, Sans-serif;  font-size12px;  background#353138;  background-moz-radial-gradient(center, ellipse cover,  #353138 0%#1a181c 100%);  background-webkit-gradient(radial, center center, 0px, center center, 100%color-stop(0%#353138), color-stop(100%#1a181c));  background-webkit-radial-gradient(center, ellipse cover,  #353138 0%,#1a181c 100%);  background-o-radial-gradient(center, ellipse cover,  #353138 0%,#1a181c 100%);  background-ms-radial-gradient(center, ellipse cover,  #353138 0%,#1a181c 100%);  backgroundradial-gradient(ellipse at center,  #353138 0%,#1a181c 100%);  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#353138', endColorstr='#1a181c', GradientType=1);}.container {  margin0;  width100%;  height100%;  padding20px;  -webkit-perspective1500px;  -moz-perspective1500px;  -ms-perspective1500px;  perspective1500px;  position: relative;}.toggle {  color#fff;  display: inline-block;  line-height16px;  font-size20px;  float: left;}.menu {  margin100px auto;  position: relative;  background#62278d;  background-moz-linear-gradient(top,  #62278d 0%#2cc09b 100%);  background-webkit-gradient(linear, left top, left bottom, color-stop(0%,#62278d), color-stop(100%,#2cc09b));  background-webkit-linear-gradient(top,  #62278d 0%,#2cc09b 100%);  background-o-linear-gradient(top,  #62278d 0%,#2cc09b 100%);  background-ms-linear-gradient(top,  #62278d 0%,#2cc09b 100%);  backgroundlinear-gradient(to bottom,  #62278d 0%,#2cc09b 100%);  width300px;  border-width20px 0;  border-style: solid;  border-color#fff;  color#fff;  height540px;  -webkit-transform-style: preserve-3d;     -moz-transform-style: preserve-3d;      -ms-transform-style: preserve-3d;          transform-style: preserve-3d;  -webkit-transition: all 0.5s ease-in-out;     -moz-transition: all 0.5s ease-in-out;       -o-transition: all 0.5s ease-in-out;          transition: all 0.5s ease-in-out;  -webkit-box-shadow0 0 50px 0 #444;     -moz-box-shadow0 0 50px 0 #444;          box-shadow0 0 50px 0 #444;}input.toggle:checked ~ .menu {  -webkit-transformtranslateY(-200pxtranslateZ(-150pxrotateX(45degrotateZ(45deg);     -moz-transformtranslateY(-150pxrotateX(45degrotateZ(45deg);      -ms-transformtranslateY(-150pxrotateX(45degrotateZ(45deg);       -o-transformtranslateY(-150pxrotateX(45degrotateZ(45deg);          transformtranslateY(-150pxrotateX(45degrotateZ(45deg);}.menu:before {  content'';  position: absolute;  height30px;  width300px;  top520px;  left0px;  -webkit-transformrotateX(90degtranslateY(-15pxtranslateZ(15px);     -moz-transformrotateX(90degtranslateY(-15pxtranslateZ(15px);      -ms-transformrotateX(90degtranslateY(-15pxtranslateZ(15px);       -o-transformrotateX(90degtranslateY(-15pxtranslateZ(15px);          transformrotateX(90degtranslateY(-15pxtranslateZ(15px);  background#fff;  pointer-events: none;}.menu:after {  content'';  position: absolute;  height540px;  width30px;  top: -20px;  right: -30px;  -webkit-transformrotateY(90degtranslateZ(-15pxtranslateX(15px);     -moz-transformrotateY(90degtranslateZ(-15pxtranslateX(15px);      -ms-transformrotateY(90degtranslateZ(-15pxtranslateX(15px);       -o-transformrotateY(90degtranslateZ(-15pxtranslateX(15px);          transformrotateY(90degtranslateZ(-15pxtranslateX(15px);  border-width20px 0;  border-style: solid;  border-color#fff;  background#62278d;  background-moz-linear-gradient(top,  #62278d 0%#2cc09b 100%);  background-webkit-gradient(linear, left top, left bottom, color-stop(0%,#62278d), color-stop(100%,#2cc09b));  background-webkit-linear-gradient(top,  #62278d 0%,#2cc09b 100%);  background-o-linear-gradient(top,  #62278d 0%,#2cc09b 100%);  background-ms-linear-gradient(top,  #62278d 0%,#2cc09b 100%);  backgroundlinear-gradient(to bottom,  #62278d 0%,#2cc09b 100%);  pointer-events: none;}.menu .top {  padding15px 15px 15px 20px;  width100%;}.menu .top .search {  position: relative;  display: inline-block;}.menu .top .search input {  background-color: transparent;  -webkit-transition: all 100ms ease-in-out;     -moz-transition: all 100ms ease-in-out;      -ms-transition: all 100ms ease-in-out;       -o-transition: all 100ms ease-in-out;          transition: all 100ms ease-in-out;  color: transparent;  border1px solid #fff;  border-radius20px;  padding10px 30px 10px 15px;  outline0 none;  width60px;  height40px;  position: relative;  -webkit-transformtranslateZ(1px);     -moz-transformtranslateZ(1px);      -ms-transformtranslateZ(1px);       -o-transformtranslateZ(1px);          transformtranslateZ(1px);  z-index2;}.menu .top .search input:focus {  width200px;  color#fff;}.menu .top .search:after {  content'\f002';  font-family'FontAwesome';  font-size16px;  position: absolute;  color#fff;  top11px;  right18px;  width20px;  height20px;  pointer-events: none;  -webkit-transformtranslateZ(1px);     -moz-transformtranslateZ(1px);      -ms-transformtranslateZ(1px);       -o-transformtranslateZ(1px);          transformtranslateZ(1px);  z-index1;}.menu .top .exit {  position: relative;  display: inline-block;  width40px;  height40px;  outline0 none;  float: right;  cursor: pointer;  -webkit-transformtranslateZ(1px);     -moz-transformtranslateZ(1px);      -ms-transformtranslateZ(1px);       -o-transformtranslateZ(1px);          transformtranslateZ(1px);  z-index2;}.menu .top .exit:focus,.menu .top .exit:active {  border1px solid #fff;  border-radius20px;}.menu .top .exit:before {  content'';  pointer-events: none;  position: absolute;  display: block;  width30px;  height30px;  top14px;  left: -6px;  border-width0 2px 0 0;  border-style: solid;  border-color#fff;  -webkit-transformrotate(-45deg);     -moz-transformrotate(-45deg);      -ms-transformrotate(-45deg);       -o-transformrotate(-45deg);          transformrotate(-45deg);  z-index1;}.menu .top .exit:after {  content'';  pointer-events: none;  position: absolute;  display: block;  width30px;  height30px;  top: -6px;  left: -6px  border-width0 2px 0 0;  border-style: solid;  border-color#fff;  -webkit-transformrotate(45deg);     -moz-transformrotate(45deg);      -ms-transformrotate(45deg);       -o-transformrotate(45deg);          transformrotate(45deg);}.menu .middle {  position: relative;  min-height40px;  list-style: none;  padding0;  margin0;  text-transform: uppercase;  font-weight: bold;  font-size15px;  -webkit-transform-style: preserve-3d;     -moz-transform-style: preserve-3d;      -ms-transform-style: preserve-3d;          transform-style: preserve-3d;}.menu .middle li {  margin0;  padding15px 0 15px 40px;  outline0 none;  position: relative;  -webkit-transform-style: preserve-3d;     -moz-transform-style: preserve-3d;      -ms-transform-style: preserve-3d;          transform-style: preserve-3d;  -webkit-transformtranslateZ(1px);     -moz-transformtranslateZ(1px);      -ms-transformtranslateZ(1px);       -o-transformtranslateZ(1px);          transformtranslateZ(1px);  z-index1;}.menu .middle li:hover {  -webkit-box-shadow: inset 0 0 80px 0 rgba(2552552550.3);     -moz-box-shadow: inset 0 0 80px 0 rgba(2552552550.3);          box-shadow: inset 0 0 80px 0 rgba(2552552550.3);  cursor: pointer;}.menu .middle li:hover:before,.menu .middle li:focus:before {  content'\f0da';  font-family'FontAwesome';  font-size16px;  position: absolute;  top15px;  left20px;}.menu .middle li:focus,.menu .middle li:focus:after {  color#3EAC9E;  background-color#62278d;}.menu .middle li .fa {  padding-right15px;}.menu .middle li:focus:after,.menu .middle li:hover:after {  content'';  position: absolute;  height48px;  width30px;  top0px;  right: -30px;  -webkit-transformrotateY(90degtranslateZ(-14pxtranslateX(15px);     -moz-transformrotateY(90degtranslateZ(-14pxtranslateX(15px);      -ms-transformrotateY(90degtranslateZ(-14pxtranslateX(15px);       -o-transformrotateY(90degtranslateZ(-14pxtranslateX(15px);          transformrotateY(90degtranslateZ(-14pxtranslateX(15px);  pointer-events: none;}.menu .middle li:hover:after {  -webkit-box-shadow: inset 0 0 80px 0 rgba(2552552550.3);     -moz-box-shadow: inset 0 0 80px 0 rgba(2552552550.3);          box-shadow: inset 0 0 80px 0 rgba(2552552550.3);}.menu .bottom {  height40px;}.menu-back {  position: absolute;  background: transparent;  top: -20px;  left0;  width300px;  height540px;  -webkit-transformtranslateZ(-29px);     -moz-transformtranslateZ(-29px);      -ms-transformtranslateZ(-29px);       -o-transformtranslateZ(-29px);          transformtranslateZ(-29px);  -webkit-box-shadow100px 100px 50px -30px #111;     -moz-box-shadow100px 100px 50px -30px #111;          box-shadow100px 100px 50px -30px #111;  z-index0;}.glass-reflection {  position: absolute;  -webkit-transition: box-shadow 1s;     -moz-transition: box-shadow 1s;      -ms-transition: box-shadow 1s;       -o-transition: box-shadow 1s;          transition: box-shadow 1s;  -webkit-transformrotateZ(-1degtranslateZ(1pxskewY(60deg);     -moz-transformrotateZ(-1degtranslateZ(1pxskewY(60deg);      -ms-transformrotateZ(-1degtranslateZ(1pxskewY(60deg);       -o-transformrotateZ(-1degtranslateZ(1pxskewY(60deg);          transformrotateZ(-1degtranslateZ(1pxskewY(60deg);  -webkit-box-shadow: inset 0px -40px 0px -50px rgba(2552552550.0);     -moz-box-shadow: inset 0px -40px 0px -50px rgba(2552552550.0);          box-shadow: inset 0px -40px 0px -50px rgba(2552552550.0);  border-radius200px 0 20px 0 ;  top85px;  left95px;  width200px;  height100px;  background-color: transparent;}input.toggle:checked ~ .menu .glass-reflection {  -webkit-box-shadow: inset 0px -40px 150px -50px rgba(2552552550.15);     -moz-box-shadow: inset 0px -40px 150px -50px rgba(2552552550.15);          box-shadow: inset 0px -40px 150px -50px rgba(2552552550.15);}