Realizzare una dashboard in stile mobile con i CSS è un utile esercizio preparatorio per future applicazioni delle tecniche CSS al mondo mobile. In questo articolo vedremo come realizzare una dashboard che mantenga una sua coerenza strutturale anche con i CSS disabilitati. Questo è importante perchè ci permette di far funzionare il nostro codice su una vasta gamma di dispositivi e non solo su quelli di ultima generazione. Vediamo insieme i dettagli.
La nostra dashboard sarà marcata con una lista non ordinata. Se i CSS sono diabilitati, l'utente vedrà un elenco di link:
<div id="site">
<div id="dashboard">
<h2>Dashboard</h2>
<ul>
<li id="panel"><a href="#">Control panel</a></li>
<li id="stats"><a href="#">Statistics</a></li>
<li id="files"><a href="#">Files</a></li>
<li id="setting"><a href="#">Settings</a></li>
<li id="mail"><a href="#">Mail</a></li>
<li id="feed"><a href="#">Feed</a></li>
</ul>
</div>
</div>
Diamo subito gli stili agli elementi generici e ai contenitori site
e dashboard
:
body {
margin: 0;
padding: 2em 0;
font: 12px Arial, sans-serif;
background: #008eb9;
color: #333;
}
h2 {
font: 100% "Arial Black", Arial, sans-serif;
}
#site {
width: 380px;
margin: 0 auto;
background: #fff;
border: 2px solid #777;
border-radius: 6px;
}
#dashboard {
padding: 10px 0;
width: 360px;
margin: 0 auto;
}
Ho usato in questo caso una larghezza di 380 pixel, ma credo che in un ambiente mobile usare misure fisse sia a volte controproducente. In genere, la risoluzione dei dispositivi può variare di molto, e anche se questa misura può sembrare ragionevole su uno smartphone, non lo è su altri dispositivi. Raccomando pertanto l'uso delle percentuali.
A questo punto assegniamo degli stili alla nostra lista e al titolo principale. Allineiamo le voci col floating, facendo in modo di lasciare dello spazio verticale sopra il testo dei link per permettere l'uso di immagini di sfondo su ciascuna voce:
#dashboard h2 {
background: #008eb9;
color: #fff;
text-transform: uppercase;
font-size: 1.5em;
letter-spacing:. 0.1em;
border-radius: 6px 6px 0 0;
margin: 0 0 10px 0;
padding: 6px;
text-align: center;
}
#dashboard ul {
width: 100%;
height: 100%;
overflow: hidden;
margin: 0;
padding: 0;
list-style: none;
}
#dashboard ul li {
float: left;
width: 120px;
height: 6em;
background-position: 50% 0;
background-repeat: no-repeat;
}
#dashboard ul li a {
display: block;
width: 100%;
float: left;
text-decoration: none;
color: #008eb9;
text-transform: uppercase;
font-variant: small-caps;
text-align: center;
font-weight: bold;
padding-top: 55px;
}
Il padding superiore di ciascun link è stato calcolato a partire dall'altezza delle immagini di sfondo, che vengono inserite come segue:
#dashboard ul #panel {
background-image: url(panel.png);
}
#dashboard ul #stats {
background-image: url(stats.png);
}
#dashboard ul #files {
background-image: url(files.png);
}
#dashboard ul #setting {
background-image: url(setting.png);
}
#dashboard ul #mail {
background-image: url(mail.png);
}
#dashboard ul #feed {
background-image: url(feed.png);
}
Potete visionare l'esempio finale in questa pagina.