Login
Nome utente:

Password:


Hai perso la password?

Registrati ora!
Menu principale
Supporta Ant-O-Pedia
Supporta il sito tramite il nostro banner
antban
I nostri supporters

Googlerank, pagerank di Google SEO Directory - Indicizza GRATIS il tuo sito Web nei motori di ricerca Free Gratis Online Top Site
Digitalpix - Stampa le tue foto online! Scambio Link
Google
Utenti Online
6 utente(i) online (4 utente(i) in Articoli)

Iscritti: 0
Utenti anonimi: 6

Altro...
Autore : mikemago
Data di Pubblicazione: 11/10/2006 19:30:35
Letture : 695
Clicca qui!
ID Articolo : 37
Versione 1.00
Audience : Default

HTML e CSS

Impariamo a separare contenuto e stile

Vi è mai capitato di creare un bellissimo sito web, pieno di colori e formattazioni grafiche raffinate per poi dover passare ore sul codice a fare modifiche per cambiare impostazioni di colore, larghezza o simile.

L'utilizzo del copia-e-incolla, si sa, è una cosa molto comoda ma spesso abusata e spessissimo porta a ripetizione di errori e a duplicazione di decine e decine di linee di codice che poi diventa drammatico mantenere o modificare in caso di bisogno.

Certo l'utilizzo delle espressioni regolari (trattate già in un altro articolo) rende le sostituzioni più agevoli e veloci, ma esistono soluzioni decisamente più "raffinate".

In questo articolo parleremo infatti di Cascade Style Sheets (Fogli di stile in cascata) o più brevemente CSS.

Immaginate di dover gestire un sito di articoli come il nostro antopedia, persone diverse devono poter scrivere i loro articoli nella maniera più semplice possibile, senza preoccuparsi dell'aspetto grafico, mentre il webmaster vuole che tutti gli articoli abbiano un'impostazione stilistica il più uniforme possibile.

Come conciliare i due aspetti del problema? La risposta è semplice, bisogna poter separare il contenuto di una articolo dal suo aspetto grafico!

E' proprio con questo scopo che da diversi anni sono stai introdotti i CSS nello sviluppo di pagine web. L'idea è di scrivere delle pagine HTML orientate il più possibile al contenuto, lasciando tutte le informazioni di stile all'interno dello Stylesheet CSS.

In questo modo si definiscono delle cifre stilistiche uniformi per tutte le pagine che scriveremo, si alleggerirà il codice html che diventerà più leggibile e intuitivo, e si renderà atomica e immediata la modifica dello stile di una pagina che si propagherà immediatamente su TUTTE le pagine che utilizzano lo stesso CSS.

Il discorso può sembrare molto più complicato di quanto sia la pretica vera e propria, vediamo quindi di chiarire il tutto on un paio di esempi pratici.

Continuiamo con l'esempio del nostro sito. Come potete notare in questo articolo esistono dei "box" di testo di diversi colori, il cui scopo è suddividere i paragrafi di teoria, pratica e problematiche oltre a dare un'impostazione grafica più gradevole per il visitatore.

In una pagina html classica questo sarebbe fatto impostando paragrafo per paragrafo i colore di sfondo e di bordo del box, oltre magari alle dimensioni del carattere i magini e l'indentazione. In pratica un sacco di lavoro ad ogni apertura di un nuovo box, immaginate poi se un giorno decidessi che al osto del verde preferissi un bel azzurro, dovrei sostituire tutto il codice di tutti gli articoli, un lavoro disumano!!

La realtà grazie ai CSS è decisamente più rosea.

Tutto quello che devo dare è infatti definire un "separatore", un tag HTML particolare (in questo caso il tag <div> ) e assegnagli una CLASSE di appartenenza. Supponiamo di voler creare un riquadro verde, associato nella nostra logica ad un argomento teorico, il nostro codice HTML sarà:

<div class="teoria">Questo è il testo contenuto all'interno </div>

Se visualizziamo la pagina, non noteremo nulla di particolare: il tag <div> infatti non prevede alcuna formattazione predefinita, è un semplice "divisore". Il nostro testo è quindi isolato (dentro in divisore) e facilmente identificabile (appartiene alla classe "teoria" ) con il minimo sforzo possibile, un semplice tag. Il contenuto in questo modo rimane l'informazione prevalente all'interno della pagina, e il codice html ha un impatto minimo su chi analizza il sorgente.

Passiamo quindi alla creazione di un foglio di stile che ci permetta di applicare una formattazione al nostro testo.

Creiamo un file con estensione CSS come ad esempio stile.css e al suo interno scriviamo il seguente codice:

teo_css

Cosa stiamo facendo? Semplicissimo stiamo definendo un insieme di regole comuni per la classe "teoria", impostando il colore di sfondo, del carattere, del bordo, margini e indentazione. In questo modo qualsiasi elemento della classe interessata erediterà automaticamente le impostazioni definite una sola volta all'interno del nostro css

L'unica cosa che manca per completare l'opera è inserire all'interno della pagina html il riferimento al nostro foglio di stile aggiungendo nell'HEAD il seguente codice:

<link rel="stylesheet" href="stile.css" >

Vogliamo creare un altro box verde? Non serve replicare tutto il codice dello stile, ma semplicemente aprire una altro tag della classe "teoria" ed il gioco è fatto.

Abbiamo creato box ovunque ma il verde non ci piace piu? Non serve scartabellare tra decine di file html, basta cambiare il verde in azzurro nel nostro css e la modifica sarà immediata e condivisa dall'intero sito.

In questo modo chi scriverà l'articolo dovrà occuparsi esclusivamente del contenuti dello stesso, e con pochi colpi di mouse il webmaster sarà in grado di formattare il testo in maniera da renderlo uniforma col resto del sito.

Ma i vantaggi non sono ancora finiti. Avete notato la clausola media="all" che abbiamo inserito quando abbiamo collegato l'html al foglio di stile? Anche lui fornisce delle interessanti possibilità

E' infatti possibile definire fogli di stile diversi a seconda del dispostivo che accede alla pagina.

Un esempio utilissimo riguarda il Media="print" che riguarda... la vostra stampante!

Quanti di voi avranno maledetto le tonnellate di inchiostro perso per stampare una pagina web con un testo circondato di immagini pubblicitarie o magari avete stampato una pagina e la stampante ha pensato bene di troncarvi a metà una frase perchè la pagina era più larga del vostro classico A4

Specificando un css differente invece potete cambiare totalmente stile alla pagina solo per quanto riguarda la stampa: l'utente continuerà a visualizzare sul browser tutti i colori e le immagini che volete, ma alla pressione del tasto stampa la vostra stampante riceverà un perfetto documento in bianco e nero con tutte le misure necessarie per essere perfettamente impaginato. Non male vero

OK, adesso che il concetto è chiaro proviamo con un esempio un po più complicato e decisamente più interessante

Supponiamo di avere una classica tabella html, magari con un sacco di dati e vogliamo formattarla in maniera decisamente più accattivanti.

La classica formattazione e rappresentazione sarebbe la seguente:

src src

Non molto gradevole non è vero? Proviamo a migliorare il tutto tramite css, innanzitutto cambiamo leggermente l'html per predisporlo alle modifiche, aggiungiamo una classe per la tabella, per gli header e per le righe, magari alternando colonne pari e dispari con classi differenti.

src

In questa maniera abbiamo creato differenti identificativi:

  1. id=stats_datatable che comprende l'intera tabella e assegna un id unico alla nostra tabella
  2. class=tr_even che specifica l'appartenenza ad una classe che utilizzeremo per le righe dispari
  3. class=tr_odd che specifica l'appartenenza ad una classe che utilizzeremo per le righe pari

La differenza tra classe e id risiede semplicemente nel fatto che un ID dovrebbe essere unico all'interno di una pagina, quindi lo utilizzeremo per specificare elementi di stile riservati ad un solo oggetto (la nostra tabella), mentre utilizzeremo le classi per stili da condividere tra più elementi (come ad esempio le righe della tabella)

Nel nostro file "stile.css" scriveremo quindi il seguente codice:

css src

Come potete facilmente notare le specifiche per il tipo ID sono caratterizzate dal cancelletto preposto al nome ( #stats_datatable ) , mentre le CLASS utilizzano il punto ( .tr_odd .tr_even).

Infine , solo soletto, il set di regole denominato th, il quale, non avendo nè classe nè id, ed essendo una parola chiave html, andrà ad applicare la formattazione a TUTTI i tag presenti nel codice

Semplice ma molto potente vero? Guardate ora che bella la nostra tabella...decisamente più gradevole, non trovate?

tab_css

Per concludere in bellezza, aggiungiamo una finezza, supponiamo di avere molti più dati da mostrare e poco spazio a disposizione, non sarebbe bello se, superata una certo numero di righe, apparisse un comodo scrollbar in modo da poter scorrere tutti i dati senza bisogno di ulteriore spazio?

Niente di più semplice, basterà includere la tabella all'interno di un apposito <div> e attribuirgli nel foglio di stile una altezza fissa e l'opzione overflow:auto che farà comparire la scrollbar solo quando tale altezza sarà superata.

scroll

Io vi lascio lo screenshot, a voi la realizzazione come primo esperimento coi CSS...

Nel caso aveste bisogno qualche guida di riferimento, la W3C è il gruppo che si occupa di definire lo standard per i CSS

Fornisce inoltre uno strumento di validazione e controllo di HTML fogli di stile. Se superate tale test potrete esporre sul vostro sito un mini-banner che attesta la correttezza del vostro codice!!

Buona stesura e ricordatevi di sbizzarririvi il più possibile!

Mike

Versione Stampabile Invia l'articolo a un amico
 
I commenti sono proprietà dei rispettivi autori. Non siamo in alcun modo responsabili del loro contenuto.
Ultimi Articoli Pubblicati
Fermati e Pensa
RSS Feed
Le ultime notizie di Ant-O-Pedia direttamente sul tuo PC
News Sul Sito
Notizie Da Condividere
Tutte le News

Ti piace questo sito? Votalo in "Sullarete.it"

Supporta Ant-O-Pedia
Vuoi supprtare antopedia? Niente soldi, solo visite ai nostri supporters!
Offerta last minute
xoopsimageshack Total World Wide Directory textlinksrank-power.com - boost your website!wholesale traffic