world.jpg

Ultime dal forum

Movimento 5 Stelle: La nuova speranza? by Gemini
scritto 43 minuti e 55 secondi fa, con 0 risposte.

Blog Aggiornamenti Apple by Bodom
scritto 11 minuti e 48 secondi fa, con 75 risposte.

Quando Il Ceo Mente Sul Suo Cv: Cose De... by Bodom
scritto 14 minuti e 16 secondi fa, con 4 risposte.

Mortal Kombat Legacy by Bodom
scritto 16 minuti e 20 secondi fa, con 1 risposte.

La Cassazione Conferma Che I Blog Non So... by Gemini
scritto 58 minuti e 5 secondi fa, con 3 risposte.

LG Optimus 4X HD: atteso a breve a 500 E... by bitsandchips
scritto 2 minuti e 11 secondi fa, con 0 risposte.

Apple: ritorno di fiamma per AMD by bitsandchips
scritto 46 minuti e 41 secondi fa, con 0 risposte.

SilverStone riduce il Fortress FT03 a FT... by bitsandchips
scritto 48 minuti e 40 secondi fa, con 0 risposte.

ADATA: due nuovi kit XPG Xtreme DDR3-213... by bitsandchips
scritto 1 giorni e 14 ore fa, con 0 risposte.

GeForce GRID, per giocare in streaming o... by bitsandchips
scritto 1 giorni e 17 ore fa, con 0 risposte.

In Questo Istante

 23 visitatori online

Commenti dei lettori

Download

I Numeri 1

Upload Img

La Carta

CSS, la potenza del Web PDF Stampa E-mail
Valutazione attuale: / 2
ScarsoOttimo 
Tech - Lezioni Di Ingegneria Informatica

Add this to your website

 Scritto da Gianfranco V. (Gianfrix)

INTRODUZIONE
Da quando mi sono avvicinato allo studio dei Cascading Style Sheets ho capito che è giunta l’ora di accantonare per sempre l’uso delle tabelle e dei tanto odiati tag <tr> e <td> per la creazione dei layout per il web. I CSS infatti vengono utilizzati per semplificare il compito di gestire la conformazione grafica di un sito web e permettono quindi di  separare i contenuti dalla formattazione e permettere una programmazione più chiara e facile da utilizzare, sia per gli autori delle pagine HTML che per gli utenti.
Pertanto, oltre che per il layout, essi vengono utilizzati per gestire tutto l’aspetto grafico del sito, dal testo alle immagini, ai form e al posizionamento degli elementi nella pagina. In questo articolo non voglio annoiarvi con concetti semplici e banali, che potrete trovare in rete con una semplice ricerca su google “tutorial CSS” ad esempio, ma voglio fornirvi alcuni concetti avanzati che ci permetteranno di capire come questo strumento sia molto versatile e soprattutto potente. Pertanto invito i neofiti ad approfondire prima l’argomento imparando anche un po’ di sintassi, che fra l’altro è molto semplice e intuitiva (si avvicina molto al JavaScript),  e se necessario fare uso inizialmente di strumenti automatici che è possibile trovare in ambienti di sviluppo per il web.

BREVE PANORAMICA SUI CSS
In questo articolo come già accennato in precedenza, non tratteremo la sintassi e le regole più banali sui CSS, presuppongo pertanto che voi sappiate cosa sia un selettore, un id, una classe, un div, ecc.
Inoltre vi invito a scrivere il codice CSS in pagine diverse rispetto a quelle in cui risiede il contenuto HTML, sia per una maggiore chiarezza del codice stesso, sia perché è possibile in questo modo applicare lo stesso stile a più pagine diverse del nostro sito.
A questo punto, dopo che avrete spulciato sul web tutte le guide possibili sui CSS (magari iniziate a dare un’occhiata a quello che trovate su Wikipedia), vedremo alcune applicazioni interessanti su questo potentissimo strumento e capiremo perché oggi un web designer non può prescindere dall’utilizzo dei fogli di stile.

IMMAGINI
Iniziamo la nostra avventura sui CSS parlando delle immagini. Quante volte vi sarà capitato di dover modificare delle immagini in Photoshop per aggiungere un testo da sovrapporre all’immagine stessa? Con i CSS questo si può fare senza dover aprire nessun programma di grafica, rendendo l’immagine sfondo del blocco che contiene il testo:
#box h2 {
    background-image: url(boximage.jpg);
    background-repeat: no-repeat;
}

Il vantaggio è quello di avere un testo indipendente dall’immagine, e che può quindi essere modificato più facilmente.
Altre volte vi sarà capitato di voler togliere quel fastidiosissimo bordo blu dalle immagini che vengono utilizzate come link. A questo punto basta inserire una regola come questa per ottenere l’effetto desiderato:

img {
    border: none;
}

MENU DI NAVIGAZIONE
I sistemi di navigazione di vecchio tipo sono spesso implementati utilizzando layout basati su tabelle e immagini. Utilizzando i CSS potete sostituire molte immagini dedicate alla navigazione con testo manipolato. Utilizzando delle immagini infatti potreste correre nel rischio di dover creare una nuova immagine e di aver perso il file originale di Photoshop che usate per creare i pulsanti di navigazione, oppure chi ha le immagini disabilitate non può leggere il testo all’interno dei pulsanti e soprattutto avere molte immagini allunga i tempi di caricamento del sito.
Potete adattare questa soluzioni ad elenchi esistenti costruiti con le tabelle, ma il mio consiglio è quello di utilizzare un elenco non ordinato per creare da zero un nuovo menu.
  Quindi andiamo a scrivere come prima cosa il codice HTML, che sarà di questo tipo:
<div id=”menu”>
    <ul>
        <li><a href=”#”>Chi siamo</a></li>
        <li><a href=”#”>Prodotti</a></li>
        <li><a href=”#”>Contatti</a></li>
    </ul>
</div>
Andiamo ora a scrivere il codice CSS per formattare l’elenco rimuovendo i puntini dell’elenco e il rientro del margine che il browser applica di default:
#menu  ul{
    list-style: none;
    margin: 0;
padding: 0;
}

Adesso assegniamo un bordo inferiore agli elementi con il tag <li>:
#menu li{
    border-bottom: 1px solid #ED9F9F;
}

Infine, formattiamo il link vero e proprio:
#menu li a:link, #menu li a:visited{
font-size: 90%;
display: block;
padding 0.4em 0 0.4em 0.5em;
border-left: 12px solid #711515;
border-right: 1px solid #711515;
background-color: #B51032;
color: #FFFFFF;
text-decoration: none;
}

Le regole imposte sono tutte ovvie, margini, sottolineatura, bordi. Mi soffermo solo “sull’istruzione” “display: block;” . Grazie a questo, il link viene mostrato come un blocco di elementi e l’intera area di ogni pulsante di navigazione diventa attiva quando si passa il cursore su di esso. L’effetto è lo stesso che avremmo potuto ottenere usando le immagini.
Per poter creare il simpatico effetto di rollover (ovvero il cambio dell’immagine quando l’utente passa il mouse su di un pulsante), basta aggiungere il selettore della pseudo classe :hover :
#menu li a:hover{
    background-color: #711515;
    color:#FFFFFF;
}

Capito il meccanismo possiamo creare anche menu a più livelli; in questo caso le regole CSS che applicheremo saranno di questo tipo:
#menu ul ul
#menu ul ul li
#menu ul ul a:link, #menu ul ul a:visited
#menu ul ul a:hover
Se vogliamo visualizzare il nostro elenco in orizzontale piuttosto che in verticale dobbiamo utilizzare il seguente “trucco”:
#menu li{
    display: inline;
}
Possiamo implementare molte altre soluzioni per creare menu personalizzati. Ad esempio possiamo creare dei menu a discesa o dei menu di navigazione a schede. Io mi limiterò a darvi alcune nozioni interessanti, perché in rete troverete guide e tutorial infiniti per poter creare degli effetti molto simpatici per i vostri siti.

CSS PER DISPOSITIVI ALTERNATIVI
Grazie ai CSS, scrivendo poche righe di codice possiamo dare la possibilità agli utenti di accedere ai contenuti del vostro sito anche se usano dispositivi non in gradi di visualizzare la grafica, come i PDA, i browser dei telefonini oppure gli screen reader che leggono “vocalmente” il testo a chi ha difficoltà visive. Utilizzare i CSS per il layout non rende automaticamente il sito accessibile a chiunque. Per esempio, gli utenti con problemi visivi preferiscono leggere un testo che è disposto ordinatamente e che può essere ingrandito.
Ad esempio, possiamo creare dei fogli di stile adatti alla stampa. Le pagine web, infatti, raramente vengono stampate con una buona qualità, poiché sono state create soprattutto per essere mostrate a video. A questo punto utilizzeremo un media type CSS per applicare al documento un foglio di stile per la stampa. Lo aggiungeremo mediante questa istruzione al file HTML:
<link rel=”stylesheet” type=”text/css” href=”print.css” media=”print” />
Creare un foglio di stile specifico per la stampa potrebbe essere molto utile per i vostri visitatori, soprattutto se la pagina contiene molte immagini. Infatti, stampare una pagina particolarmente elaborata potrebbe consumare parecchio inchiostro della stampante, oppure potrebbe essere un processo molto lento, soprattutto con le stampanti più vecchie. Inoltre, in alcuni siti la stampa potrebbe risultare di pessima qualità, a causa delle combinazioni di colori o del particolare layout.
A questo punto andiamo a vedere un po’ di codice. Come prima cosa, in un nuovo file css che potremmo chiamare “print.css”, eliminiamo un eventuale menu di navigazione, che ci risulterebbe solo di intralcio nella stampa:
#menu {
    display: none;
}

Poi possiamo rimuovere qualsiasi regola dedicata al menu di navigazione che si applichi a tutti gli elementi all’interno di #menu e rendere l’area dedicata al contenuto molto più grande, così da occupare tutto lo spazio disponibile.
Se controllate adesso il vostro documento nell’anteprima di stampa vedrete che il menu di navigazione è stato rimosso e il contenuto risulta disposto molto più uniformemente nella pagina.
Alcuni browser moderni permettono all’utente di vedere una lista dei fogli di stile legati al documento e selezionare quello che preferiscono. Questa opportunità può essere molto utile per quelle persone che, per esempio, hanno difficoltà a leggere il testo se c’è poco contrasto sullo schermo, oppure per coloro che hanno bisogno di un font molto grande per riuscire a leggere.
Per fare ciò bisogna collegare il foglio di stile alternativo con rel=”alternative stylesheet” e utilizzare un titolo. Gli utenti che vedranno il titolo nel menu del browser, come “high contrast” o “large text” ne comprenderanno la funzionalità.
Alcuni browser però non supportano questa funzionalità specifica del fogli di stile alternativi. A questo punto ci viene in aiuto JavaScript, così da permettere all’utente di selezionare il foglio di stile più adatto:
onclick=”setActiveStyleSheet(‘large text’); return false;”

LAYOUT
Occupiamoci adesso del layout, ponendoci una domanda fondamentale: tabelle o CSS? Beh, se volete rimanere aggiornati e adottare soluzioni più funzionali e flessibili, allora scordatevi le tabelle. Con i CSS potete ottenere effetti che prima vi sognavate solamente.
Iniziamo col capire la differenza tra margine e padding.
I margini aggiungono spazio all’esterno di un elemento, mentre il padding lo aggiunge all’interno. Possiamo naturalmente definire margini e padding di ogni lato indipendentemente dall’altro.
A questo punto possiamo utilizzarli per qualsiasi elemento.
La proprietà float invece sposta l’elemento a cui viene applicata esternamente al flusso del documento e lo fa “fluttuare” lungo il perimetro dell’elemento a blocco che lo contiene. Gli altri elementi a blocco ignoreranno l’elemento fluttuante e verranno mostrati come se questo non ci fosse. Gli elementi inline, invece, come i contenuti, faranno spazio all’elemento, ed è questo il motivo per cui utilizzando la proprietà float è possibile disporre il testo intorno ad una immagine.
La proprietà CSS clear invece permette di ripulire un elemento da qualsiasi altro elemento fluttuante.
Proseguiamo la nostra carrellata sul layout analizzando il fatto che tramite l’utilizzo dei CSS possiamo collocare un elemento sulla pagina partendo dall’alto, dal basso, da sinistra o da destra utilizzando il posizionamento assoluto (
position: absolute;).
Adesso magari vi starete chiedendo: ma come faccio a centrare un blocco sulla pagina? Magari dovrei utilizzare degli artifici particolari. Vi posto semplicemente le due righe di codice per ottenere ciò:
margin-left: auto;
margin-right: auto;
Quando impostiamo sia il margine destro che sinistro ad auto, il browser calcola automaticamente i margini necessari affinché siano uguali e la casella venga centrata nella pagina.
Adesso possiamo sbizzarrirci nel creare i nostri layout utilizzando i posizionamenti assoluti e/o relativi dei div, scordandoci delle tabelle.
Approfondiamo un altro tipo di problema. Se ad esempio vorremmo mostrare una collezione di immagini, l’utilizzo di una tabella potrebbe sembrare la soluzione migliore; in realtà con i CSS siamo in grado di ottenere qualcosa di più elegante. Nella pagina HTML, creiamo un elenco non ordinato delle immagini assieme alla rispettiva didascalia. Adesso applichiamo i CSS e per ottenere un layout con lo stile griglia di miniature, utilizziamo la proprietà float per posizionare le immagini. Otterremo questo effetto impostando la proprietà sul tag <li> che contiene tutte le immagini:
#albumlist {
    list-style-type: none;
}
#albumlist li {
    float: left;
    width: 240px;
}
#albumlist img {
    display: block;
}

Abbiamo in questo modo rimosso i punti elenco e abbiamo fatto fluttuare le immagini verso sinistra. Inoltre, impostando le immagini da mostrare come blocchi, forzeremo la didascalia a comparire sotto ognuna di esse.

TECNICHE DI SUPPORTO PER I DIVERSI BROWSER
Poiché è improbabile che ogni visitatore del vostro sito usi la versione più aggiornata di Internet Explorer, Firefox o Safari, è opportuno assicurarsi che anche gli utenti con i browser più vecchi o meno diffusi possano apprezzare le vostre pagine.
È bene dunque cercare di provare il nostro sito con la maggior parte dei browser in disponibili. Ma capite bene che è quasi impossibile avere installato sulla propria macchina tutti i browser possibili e immaginabili, con tutte le varie versioni e per i diversi sistemi operativi. A questo punto ci viene in aiuto un utilissimo servizio gratuito presente su questa pagina:
http://browsershots.org/
Inserite il sito da testare nel campo Inserisci qui l’indirizzo del tuo sito web. Nella parte centrale selezionate i browser da utilizzare per il test, quelli già selezionati sono tutte le principali versioni dei browser più diffusi, nella maggior parte dei casi vi basterà lasciare quelli già proposti. Nella parte bassa scegliete che linguaggi dovranno essere supportati, se non sapete cosa abilitare in linea generale vi consiglio di impostare su Abilitato il linguaggio Javascript e il Flash visto che sono molto utilizzati. Se volete potete anche scegliere la dimensione dello schermo con quale il sito verrà testato e la quantità di colori. Cliccate, infine, sul pulsante Invia presente in alto a destra e vi appariranno  delle piccole immagini in miniature; cliccandoci sopra le visualizzerete a pieno schermo e potrete così visualizzare in che modo i vari browser visualizzano il vostro sito.
Concludo dandovi l’ultima dritta riguardo la convalida del codice HTML e CSS. Convalidare i CSS e i vostri documenti è un passo importante per assicurarsi che il sito sia mostrato in maniera corretta nei browser standard. Potete convalidare online i vostri documenti (X)HTML all’indirizzo http://validator.w3.org , e i documenti CSS all’indirizzo http://jigsaw.w3.org/css-validator/ . Molti strumenti per lo sviluppo web come Dreamweaver, includono convalidatori, e sono disponibili anche alcuni plugin per browser come Firefox che vi aiutano a convalidare le vostre pagine.
Adesso avete tutti gli strumenti per poter iniziare a creare qualcosa di veramente interessante tramite una tecnologia nuova ed estremamente potente e performante. Non mi resta che augurarvi buona programmazione a tutti.

Scritto da Gianfranco Vecchio (Ginafrix) in Esclusiva per TiempoLibreSite.com

Comments: