Box fisso con ombra

L’effetto ombra è ormai entrato da un pò di tempo nella gestione delle immagini dei siti internet; molto spesso questa caratteristica viene gestita dai CSS. A riguardo vi consiglio di dare un’occhiata all’articolo di 1976design.

L’argomento trattato in questo tutorial non è propriamente legato all\’utilizzo di questa possibilità, ma spiega come poter ottenere un box che presenta il medesimo aspetto grazie all’uso di tre immagini come sfondo. A riguardo bisogna specificare la limitazione che questa tecnica comporta, e cioè la rigidità dell’intelaiatura alla quale si applicano le immagini.

Creiamo il framework

Iniziamo con il piede giusto impostando un framework che riporti la struttura del nostro box, per semplicità di concetto utilizzeremo il classico contenitore con all’interno un header-content-footer, ognuno di questi sarà un div con precise caratteristiche e sarà supportato da un immagine.
Naturalmente bisognerà scrivere anche le parti di codice XHTML che richiameranno i vari div dal foglio di stile. Per adesso scriviamo il codice di gestione del box su la nostra pagina, successivamente ci occuperemo di "riempire" i vuoti della grafica, ma tutto è gestito dal CSS; fidatevi, lo vedremo più avanti.

Codice XHTML
<div id="wrap">
  <div id="header"></div>
  <div id="content"></div>
  <div id="footer"></div>
</div>

Lavoriamo sul foglio di stile

Come ho accennato precedentemente la prima cosa da fare è quella di impostare un bel div#wrap con lo solo scopo di contenere gli altri. Ma prima di fare questo dobbiamo spostarci un momento sulle definizioni generali di stile da applicare al body. Le cose sono estremamente semplici e non richiedono troppi commenti; forse l’unica cosa da chiarire é min-width: 750px; funzione necessaria affinchè vi sia una larghezza minima di 750 pixel. Questa proprietà CSS non è supportata da IE5.5 e da IE6.0, comunque non crea troppi problemi.

body {
  padding: 0;
  margin: 0;
  color: #000;
  background: #c3c3bb;
  font-family: "Trebuchet MS", Georgia, Verdana, serif;
  min-width: 750px;
  }

Adesso ci spostiamo sulla definizione ed il comportamento di div#wrap. Per facilitare la visualizzazione del framework ho deciso di impostare un border: 1px solid red; . L’unica cosa degna di nota è la proprietà width: 780px; questa é necessaria da un’immagine che presenta appunto come larghezza quella di 780 pixel.
Qui effettivamente si nota il limite di questa tecnica, che non può essere applicata ad un layout flessibile a causa delle precise dimensioni delle immagini.

div#wrap {
  background: url("sfondo.gif") repeat-y;
  border: 1px solid red;
  margin: 10px auto;
  width: 780px;
  }

Bene. Ora passiamo al successivo; il div#header non é molto diverso dal div#wrap, l’unica differenza è height: 35px; che ci permette un maggior margine di spazio in cima del box. Inoltre viene caricata come sfondo un’immagine diversa. Questa volta il bordo è di un bel color verde.

div#header {
  background: url("head.gif") no-repeat;
  border: 1px solid green;
  width: 780px;
  height: 35px;
  }

Adesso possiamo continuare il nostro lavoro impostando le caratteristiche riguardanti il div#content. Questo sarà il div che conterrà tutti i testi e le eventuali immagini che si verranno pubblicare. Le cose sono molto semplici: infatti ci servirà solamente un padding e un margin con le dimensioni che utilizzeremo. Per aiutarmi nel posizionare il div ho impostato un border: 1px solid orange; che poi si può, come tutti quelli scritti fin ora, eliminare tranquillamente.

div#content {
  padding: 0 10px 10px 10px;
  margin: 0 15px;
  border: 1px solid orange;
  }

Siamo arrivati quasi alla fine; dobbiamo solamente gestire il div#footer. Niente di troppo complicato, anzi, molto simile alle cose viste in precedenza. Ho utilizzato il giallo come bordo e l’immagine corrispondente come sfondo.

div#footer {
  background: url("foot.gif") no-repeat;
  border: 1px solid yellow;
  width: 780px;
  height: 27px;
  }

Giunti alla fine di questo tutorial dovreste avere un risultato simile a questo.
L’ultima cosa da fare è quella di "ripulire" il CSS dai vari bordi che ci hanno dato una mano per visualizzare il box.

Technorati Tags: , ,

Articoli che potrebbero interessarti

Creative Commons License

Bookmark and Share

13 Commenti per “Box fisso con ombra”

  1. antonio ha scritto:

    Innanzitutto complimenti per il post.
    Al posto delle gif cosa dovrei mettere scusami ma è la prima volta che cerco di creare un sito.

  2. L’utilizzo delle immagini di tipo .gif è consigliato se vuoi essere sicuro che anche Internet Explorer 6 supporti e visualizzi bene le trasparenze; altrimenti puoi tranquillamente utilizzare JPG e PNG.

  3. antonio ha scritto:

    Ma quale immagini devo inserire per creare l’omra.

  4. antonio ha scritto:

    ops l’ombra

  5. L’ombra la crei utilizzando un’immagine che raffiguri l’ombra; devi utilizzare un software grafico (Photoshop, Gimp, ect..) per creare l’immagine con le caratteristiche che ti servono, come ombre e colori. Poi ritagli la porzione che ti serve, la salvi con nome appropiato e la richiami nel codice.

  6. antonio ha scritto:

    Grazie come sempre della celerità nelle risposte.
    Ho creato l’immagine con l’ombra con inkscape (png) ma quando la richiamo con il codice anzichè l’ombra viene fuori un normale bordo.

  7. Hai controllato di aver definito bene l’altezza dell’immagine?

    div#footer {
    background: url("foot.gif") no-repeat;
    width: 780px;
    height: 27px;
    }

    Potrebbe essere anche un problema del percorso ri richiamo dell’immagin stessa; controlla che l’url per il tag background porti esattamente all’immagine.

  8. antonio ha scritto:

    scusami Egidio quale parte dell’immagine devo mettere nel wrap situato nel css?

  9. antonio ha scritto:

    ho risolto solo che c’è un piccolo problema quando inserisco la linea finale foot.gif per intenderci , il rettangolo continua quasi come se si ripetesse. Non riesco proprio a risolvere, ti prego di aiutarmi.

  10. Potresti postare il codice che utilizzi, sia HTML che CSS; mi sà che sbagli qualcosina nel percorso.

  11. antonio ha scritto:

    CSS:

    body {
    padding: 0;
    margin: 0;
    color: #000;
    background: #c3c3bb;
    font-family: "Trebuchet MS", Georgia, Verdana, serif;
    min-width: 750px;
    }

    div#wrap {
    background: url("sfondo.png") repeat-y;
    border: 1px solid red;
    margin: 120px auto;
    width: 780px;
    }

    div#header {
    background: url("head.png") no-repeat;
    border: 1px solid green;
    width: 780px;
    height: 35px;
    }

    div#content {
    padding: 0 10px 10px 10px;
    margin: 0 15px;
    border: 1px solid orange;
    }

    div#footer {
    background: url("foot.png") no-repeat;
    border: 1px solid yellow;
    width: 780px;
    height: 12px;
    }

  12. Fai questa modifica al CSS, anche lasciando il codice HTML così com’è.


    div#footer {
    background: #c3c3bb url("foot.png") no-repeat;
    width: 780px;
    height: 12px;
    }

    Praticamente non fai altro che utilizzare il colore di sfondo per “coprire” l’immagine del div#content.

  13. antonio ha scritto:

    grazie Egidio sei un grande!!!

Lascia un commento

Se mi adori e non puoi perderti nessun articolo, allora abbonati al rss Sickbrain Feed; se invece hai commentato e vuoi sapere come continua la discussione, puoi rss abbonarti ai commenti.

Articoli più letti

  • Non ci sono articoli

sickr

  • Gilles Le Bigot e Jean Michel Veillon - Sassari, 20 Maggio 2010
  • Gilles Le Bigot e Jean Michel Veillon - Sassari, 20 Maggio 2010
  • Eileen Rose & the Legendary Rich Gilbert - Sassari 20/05/2010
  • DSCN2526
  • Teatro 2010
  • Italia
  • Bellezza romana
  • Bho?!
  • Notthatrivese!