Extrowebsite

In questo articolo vedremo come realizzare un layout responsive, formato da tre box il quale, a prima vista, ci dà impressione di una pagina molto leggera e dall' aspetto piacevole. Il risultato finale sarà visualizzabile su qualsiati tipo di media, indipendentemente dalle sue dimensioni.

E' pur vero che siamo abituati a vedere nel web layout molto più complessi di quello presentato in questo articolo, ma potrebbe essere preso come base di partenza per poter arrivare a costruire pagine più "impegnative". Ho pensato a questo layout come ad una presentazione di un'anteprima di un libro, suddiviso in capitoli.
Di seguito una immagine:

CSS Responsive layout web con tre box
CSS Responsive layout web con tre box

Come si può vedere dall'immagine sopra ripostata, i 3 box sono essenzialmente:

  1. Header
  2. Contenuti (box di sinistra)
  3. Box Menu (colonna destra)

Il colore di sfondo dei box, uguale al colore di background della pagina, permette di avere una pagina molto chiara e pulita. Il colore tenue dei bordi, permettono la suddivisione delle aree. Tutta la struttura è stata inserita in un box contenitore; all' interno di questo ce ne sono altri 3: uno per la header, uno per i contenuti ed infine quello destro. Vediamo il codice.

#container {
padding:0;
margin: 10px auto;
}
#header{
padding-top:0;
padding-right: 10px;
padding-bottom:10px;
padding-left:10px;
margin-bottom: 10px;
height:50px;
text-align:left;
border-bottom: 1px solid rgb(213, 219, 225);
}
#content {
padding: 10px;
margin-right: 230px;
text-align:left;
border-right: 1px solid rgb(213, 219, 225);
line-height: 22px;
}
#destra {
float: right;
width: 200px;
margin: 0;
margin-left: 10px;
padding: 10px;
text-align:left;
}

Il container non presenta nessun codice particolare.
La header (testata) ha un bordo inferiore (bottom) il quale viene visualizzato, per la sua leggerezza di colore, quasi come se fosse una linea divisoria con il corpo della pagina. Il #content presenta due elementi importanti: il margin-right ed il border-right. Il motivo per cui è stato dato un margine di 230px è perchè la misura della colonna destra è di 200px; a questi si deve aggiungere la misura del padding dello stesso box #content (sinistro + destro = 10px X 2) in più i 10 pixel di margine tra la colonna destra e quella centrale.

Questo non è altro che il concetto del box model, così come viene interpretato dai diversi browser. L' altra cosa, dicevo, è il bordo destro, con la stessa funzione di quello in alto, cioè che divide il corpo centrale da un ipotetico menu posto sulla destra.

L' mostra quanto scritto fino ad ora. Provare ad allargare e restringere la finestra del browser per visualizzare la pagina sia sugli smartphone, su un tablet o monitor del PC.

Rendere il layout Responsive

Come si può vedere, il layout si adatta alle diverse dimensioni dei media. Questo è stato ottenuto grazie alle Media Queries le quali consentono di introdurre delle regole affinchè il tutto si adatti senza perdere il layout. Innanzitutto, nella head dichiarare:

<meta name=viewport content="width=device-width,initial-scale=1,minimum-scale=1" />

Dopo tutto il codice CSS, inserire la direttiva @media:

@media screen and (max-width:799px){
#content, #destra{
width:100%;
float:none;
border-right:none;
}

#destra{
border-bottom:1px solid rgb(213, 219, 225);
}
}

Con queste poche righe di codice, abbiamo dato la possibilità agli utenti del sito di poter usufruire, con qualsiasi device, dei contenuti del nostro sito.