In our new tutorial we’ll create new stylish vertical multicolor and crossbrowser CSS3 menu with 3D animation (I use css3 transition, perspective and transform properties) and pure css3 color switcher. This is UL-LI-based menu.
Here are samples and downloadable package:
[sociallocker]
[/sociallocker]
Ok, download the example files and lets start coding !
Step 1. HTML
As usual, we start with the HTML. Here is the html code of our menu. As usual – this is again UL-LI based navigation menu. The most interesting thing will be CSS styles of course.
index.html
01 | <div class="container"> |
02 | <span id="clr1"></span> |
03 | <span id="clr2"></span> |
04 | <span id="clr3"></span> |
05 | <span id="clr4"></span> |
06 | <span id="clr5"></span> |
07 | <span id="clr6"></span> |
08 | <div class="colorScheme"> |
09 | <a href="#clr1" class="clr1"></a> |
10 | <a href="#clr2" class="clr2"></a> |
11 | <a href="#clr3" class="clr3"></a> |
12 | <a href="#clr4" class="clr4"></a> |
13 | <a href="#clr5" class="clr5"></a> |
14 | <a href="#clr6" class="clr6"></a> |
18 | <li><a href="#">Menu 1</a> |
20 | <li><a href="#">Submenu 1</a></li> |
21 | <li><a href="#">Submenu 2</a></li> |
22 | <li><a href="#">Submenu 3</a></li> |
23 | <li><a href="#">Submenu 4</a></li> |
24 | <li><a href="#">Submenu 5</a></li> |
27 | <li><a href="#">Menu 2</a> |
29 | <li><a href="#">Submenu 2-1</a></li> |
30 | <li><a href="#">Submenu 2-2</a></li> |
31 | <li><a href="#">Submenu 2-3</a></li> |
32 | <li><a href="#">Submenu 2-4</a></li> |
33 | <li><a href="#">Submenu 2-5</a></li> |
34 | <li><a href="#">Submenu 2-6</a></li> |
35 | <li><a href="#">Submenu 2-7</a></li> |
36 | <li><a href="#">Submenu 2-8</a></li> |
39 | <li><a href="#">Menu 3</a> |
41 | <li><a href="#">Submenu 3-1</a></li> |
42 | <li><a href="#">Submenu 3-2</a></li> |
43 | <li><a href="#">Submenu 3-3</a></li> |
44 | <li><a href="#">Submenu 3-4</a></li> |
45 | <li><a href="#">Submenu 3-5</a></li> |
48 | <li><a href="#">Menu 4</a></li> |
49 | <li><a href="#">Menu 5</a></li> |
50 | <li><a href="#">Menu 6</a></li> |
Step 2. CSS
Here are the CSS styles of our vertical menu. Maybe you’ve noticed – that in our html we have two CSS files: layout.css and menu.css. The first one (layout.css) contains the styles of our demo page. We don’t publish these styles in the article, but if you need – you can find these styles in our package.
002 | background-color: #8899AA; |
003 | list-style: none outside none; |
012 | -moz-perspective: 200px; |
013 | -ms-perspective: 200px; |
014 | -webkit-perspective: 200px; |
015 | -o-perspective: 200px; |
025 | -moz-transform: rotateY(70deg); |
026 | -ms-transform: rotateY(70deg); |
027 | -o-transform: rotateY(70deg); |
028 | -webkit-transform: rotateY(70deg); |
029 | transform: rotateY(70deg); |
030 | -moz-transform-origin: 0 0; |
031 | -ms-transform-origin: 0 0; |
032 | -o-transform-origin: 0 0; |
033 | -webkit-transform-origin: 0 0; |
034 | transform-origin: 0 0; |
035 | -moz-transition: -moz-transform 0.3s linear, opacity 0.3s linear; |
036 | -ms-transition: -ms-transform 0.3s linear, opacity 0.3s linear; |
037 | -o-transition: -o-transform 0.3s linear, opacity 0.3s linear; |
038 | -webkit-transition: -webkit-transform 0.3s linear, opacity 0.3s linear; |
039 | transition: transform 0.3s linear, opacity 0.3s linear; |
042 | background-color: #FFFFFF; |
046 | -moz-transform-style: preserve-3d; |
047 | -ms-transform-style: preserve-3d; |
048 | -o-transform-style: preserve-3d; |
049 | -webkit-transform-style: preserve-3d; |
050 | transform-style: preserve-3d; |
053 | background-color: #AABBCC; |
054 | border-color: #DDDDDD #555555 #555555 #DDDDDD; |
060 | padding: 8px 10px 8px 5px; |
061 | text-decoration: none; |
063 | -moz-transition: all 0.2s linear; |
064 | -ms-transition: all 0.2s linear; |
065 | -o-transition: all 0.2s linear; |
066 | -webkit-transition: all 0.2s linear; |
067 | transition: all 0.2s linear; |
070 | background-color: #8899AA; |
071 | border-color: #8899AA; |
074 | #nav li:hover ul.subs { |
078 | -moz-transition-delay: 0.3s; |
079 | -ms-transition-delay: 0.3s; |
080 | -o-transition-delay: 0.3s; |
081 | -webkit-transition-delay: 0.3s; |
082 | transition-delay: 0.3s; |
083 | -moz-transform: rotateY(0deg); |
084 | -ms-transform: rotateY(0deg); |
085 | -o-transform: rotateY(0deg); |
086 | -webkit-transform: rotateY(0deg); |
087 | transform: rotateY(0deg); |
094 | list-style: none outside none; |
106 | background-color: #8899AA; |
109 | background-color: #aa889e; |
112 | background-color: #8f88aa; |
115 | background-color: #88aaaa; |
118 | background-color: #88aa8a; |
121 | background-color: #aaa188; |
123 | #clr1:target ~ #nav, #clr1:target ~ #nav ul { |
124 | background-color: #8899AA; |
126 | #clr2:target ~ #nav, #clr2:target ~ #nav ul { |
127 | background-color: #aa889e; |
129 | #clr3:target ~ #nav, #clr3:target ~ #nav ul { |
130 | background-color: #8f88aa; |
132 | #clr4:target ~ #nav, #clr4:target ~ #nav ul { |
133 | background-color: #88aaaa; |
135 | #clr5:target ~ #nav, #clr5:target ~ #nav ul { |
136 | background-color: #88aa8a; |
138 | #clr6:target ~ #nav, #clr6:target ~ #nav ul { |
139 | background-color: #aaa188; |
141 | #clr1:target ~ #nav li:hover > a { |
142 | background-color: #8899AA; |
143 | border-color: #8899AA; |
145 | #clr2:target ~ #nav li:hover > a { |
146 | background-color: #aa889e; |
147 | border-color: #aa889e; |
149 | #clr3:target ~ #nav li:hover > a { |
150 | background-color: #8f88aa; |
151 | border-color: #8f88aa; |
153 | #clr4:target ~ #nav li:hover > a { |
154 | background-color: #88aaaa; |
155 | border-color: #88aaaa; |
157 | #clr5:target ~ #nav li:hover > a { |
158 | background-color: #88aa8a; |
159 | border-color: #88aa8a; |
161 | #clr6:target ~ #nav li:hover > a { |
162 | background-color: #aaa188; |
163 | border-color: #aaa188; |
Conclusion
Hope you enjoyed with new 3D menu, don’t forget to tell thanks and leave a comment 🙂 Good luck!