Oggi condivido con voi un menu, realizzato da me sfruttando le transizioni di CSS3, e che utilizza alcune icone di un pack che ho presentato qualche settimana fa: fontAwesome.
DEMOMARKUP
Questa è la struttura del menu, è una lista di schede caratterizzate da un’icona e da un’etichetta, visibile però solo al passaggio del mouse.
<ul id="menu">
<li class="item home">
<a href="#">
<span class="icon"><i class="icon-home icon-4x"></i></span><label class="tag">Home</label></a>
</li>
<li class="item cogs">
<a href="#">
<span class="icon"><i class="icon-cogs icon-4x"></i></span><label class="tag">Option</label></a>
</li>
<li class="item search">
<a href="#">
<span class="icon"><i class="icon-search icon-4x"></i></span><label class="tag">Search</label></a>
</li>
<li class="item rss">
<a href="#">
<span class="icon"><i class="icon-rss icon-4x"></i></span><label class="tag">Feed</label></a>
</li>
</ul>
CSS
Lo stile è il seguente.
#menu
{
list-style: none;width: 843px;height: 150px;margin: 100px auto;padding: 0;-moz-box-shadow: 0 0 5px 5px #999;-webkit-box-shadow: 0 0 5px 5px #999;box-shadow: 0 0 2px 2px #999;}
#menu li
{
float:left;
width: 210px;height: 100%;background-color: white;border-right: 1px dashed #efeeee;transition-property: all; /*standard*/
transition-duration: 200ms;}
#menu li:last-child{
border-right: 0;}
span.icon
{
display: block;height: 80%;width: 100%;}
span.icon i
{
color:#333333;display: block;margin: 0 auto;padding-top: 35px;}
.icon-4x
{
font-size: 5em;transition-property: font-size; /*standard*/transition-duration: 500ms;-webkit-transition-property: font-size; /*Safari e Chrome */-webkit-transition-duration: 500ms;-o-transition-property: font-size; /*Opera*/-o-transition-duration: 500ms;-moz-transition-property: font-size; /*Firefox*/-moz-transition-duration: 500ms;}
.tag
{
display: block;width: 100%;height: 17%;text-align: center;font-size: 0px;transition-property: all; /*standard*/
transition-duration: 200ms;-webkit-transition-property: all; /*Safari e Chrome */
-webkit-transition-duration: 200ms;-o-transition-property: all; /*Opera*/
-o-transition-duration: 200ms;-moz-transition-property: all; /*Firefox*/
-moz-transition-duration: 200ms;}
Unica particolarità è quel ‘ #menu li:last-child ’: tutte le schede devono avere un bordo destro, tranne l’ultima, che deve avere bordo 0. Last-child è proprio il selettore che permette di selezionare l’ultimo elemento della lista.
In questo modo invece ho gestito il massaggio del mouse sulle schede: il colore cambia, l’icona si rimpicciolisce e l’etichetta s’ingrandisce; tutto è gestito attraverso le transizioni di CSS3.
#menu li.item:hover{
border-right: 0;position: relative;}
#menu li.item:hover .icon-4x{
font-size: 3em;}
#menu li.item:hover .tag{
margin-top: -20px;font-size: 25px;}
#menu li.item.home:hover{
background-color: #e8432d;}
#menu li.item.cogs:hover{
background-color: #c1e62f;}
#menu li.item.search:hover{
background-color: #30a1f0;}
#menu li.item.rss:hover{
background-color: #f76809;}