Introduzione ad HTML/CSS Linguaggi di Mark-Up: XML Anno Accademico 2003/2004
Cosa è il web? Il Web è una rete di risorse di informazioni. È composto da 3 elementi fondamentali: 1. Un uniform naming scheme per localizzare le risorse nel Web (e.g., URIs). 2. Protocolli, per accedere alle risorse per nome del Web (e.g., HTTP). 3. Ipertesti per la navigazione sul web (e.g., HTML).
URI (Uniform Resource Identifier) Ogni risorsa disponibile su web (documenti HTML,immagini,video,mp3,...) ha un indirizzo che può essere codificato da un URI. Un URI consiste tipicamente da tre parti: Meccanismo usato per accedere alla risorsa (Naming Scheme); Nome della macchina su cui risiede la risorsa (Machine Hosting); La Risorsa: Il path della risorsa sulla macchina che ospita; Esempio Indirizzo WEB della mia home page: http://www.dmi.unict.it/~snicotra/ Che si traduce in: C'è un documento disponibile tramite il protocollo HTTP; Questo documento risiede sul server www.dmi.unict.it accessibile tramite il path: /~snicotra/index.html (index.html viene attaccato di default) Altri esempi di naming scheme sono: Indirizzi di posta elettronica: mailto:snicotra@dmi.unict.it Siti ftp (File Transfer Protocol):_ ftp://ftp.unina.it
Sezioni e URI relativi All'interno di un documento HTML possono essere specificate delle ancore che risultanto accessibili aggiungendo all'uri il simbolo # seguito dal nome. Es: www.sitoweb.it/index.html#nomesez Gli URI relativi sono privi di naming scheme e di machine hosting In altre parole contengono solo il path della risorsa. (Es. file.html, img/background.gif
A che servono gli URI? Creare Link ad un altro documento o risorsa, Creare Link a fogli di stile o script esterni Inserire un immagine, oggetto, o un applet nella pagine, Creare un immagine cliccabile (MAP) Spedire una form. Creare dei Frames Citare riferimenti esterni Riferirsi a convenzioni sui metadata che descrivono dei documenti.
Cosa è HTML? HTML è una lingua franca per pubblicare ipertesti sul World Wide Web. E' un formato non proprietario basato su SGML. I documenti HTML possono essere creati da semplici editor di testo (persino Blocco Note ), da più meno potenti tool WYSISYG, o generati dinamicamente da linguaggi di scripting sever side (PHP, ASP, Perl)
Che cos è l HTML (2) Linguaggio universalmente conosciuto (potenzialmente una sorta di lingua madre di pubblicazione) che tutti i computer possono interpretare. Tramite l HTML l autore può: Pubblicare documenti online con headings (titoli), testo, tabelle, liste, foto, etc. Recuperare informazioni online attraverso links inpertestuali cliccando Costruire forms per condurre transazione con servizi remoti, per fare ricerche, prenotare alberghi, fare acquisti ecc. Insierire fogli di calcolo, video, suoni, e molte altre applicazioni.
Chi decide cosa? L HTML è un linguaggio che viene interpretato dal browser. Differenti Browser = Differenti HTML? Nasce il Consorzio w3c (www.w3c.org) (1994) allo scopo di creare standard che tutti i produttori devono (o dovrebbero) rispettare. Il consorzio fornisce le specifiche Recommendation.
HTML History 1990 Nascita HTML 2.0 1995 HTML 3.2 1997 HTML 4.0 1998 HTML 4.0.1 1999 XHTML 1.0 2000 XHTML 1.1 - Module-based XHTML 2001
Noi tratteremo HTML 4.01 Specification W3C Recommendation 24 December 1999 http://www.w3.org/tr/html401/ con attenzione a XHTML 1.0 The Extensible HyperText Markup Language (Second Edition) e a Web Accessibility Initiative (WAI) http://www.w3.org/wai/ E un occhio lontano al concetto di usabilità
Struttura di un documento HTML Un documento HTML è fatto da tre parti 1. Una linea che contiene la versione di HTML 2. Una sezione contenente l'intestazione. (HEAD) 3. Il corpo, che contiene il contenuto del documento.
Il mio primo HTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>il mio primo HTML</title> </head> <body> <p> Hello, World! </p> </body> </html> Esempi\ilmioprimohtml.html
La dichiarazione <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> Ci dice quale versione di HTML stiamo utilizzando. In particolare quale DTD (Document Type Definition) tra quelle disponibili in HTML 4.01 utilizziamo: The HTML 4.01 Strict DTD (strict.dtd) : comprende tutti gli elementi e gli attributi che non sono deprecated e che non appaiono nei documenti frameset. The HTML 4.01 Transitional DTD (loose.dtd): Strict + elementi deprecated <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> The HTML 4.01 Frameset DTD (frameset.dtd) Transitional + Frames <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/tr/html4/frameset.dtd">
Analisi <html> <head> <meta http-equiv="content-type content="text/html; charset=iso-8859-1"> <title>il mio primo HTML</title> </head> <body> <p> Hello, World! </p> </body> </html> TAG di apertura Radice del documento HTML Intestazione del documento Dichiarazione necessaria Al browser per identificare Il tipo di documento E il set di caratteri Corpo del documento TAG di chiusura
Struttura dei comandi HTML Un generico TAG HTML (elemento) è del tipo: <nometag attr1= val1 attr2= val2 > Parte interna (può contenere altri tag) </nometag> Esempio: <html> blablabla </html>
Buone abitudini (in vista di XTML) In XHTML vanno scritti solo in minuscolo. In XHTML tutti i TAG devono essere chiusi I valori degli attributi vanno sempre tra
Gli attributi e i tag deprecated Nelle varie versioni di HTML, spesso si sono mantenuti obsoleti o sbagliati alcuni tag e alcuni attributi per retro-compatibilità. Tali elementi vengono detti deprecated. Le versioni Transitional di HTML li ammettono e, in ogni caso, vanno conosciuti. Molti di questi elementi hanno a che fare con la rappresentazione visiva degli elementi
Il Tag HTML TAG: <html> Attributi: Lang: (it,en) Dir: Direzione del testo (LTR RTL) NOTA: Lang e Dir sono attributi di internazionalizzazione (i18n) che quasi tutti gli elementi supportano.
L intestazione <head> </head> Racchiude informazioni sul documento. <title> </title> Titolo (Obbligatorio) Indica il titolo del documento (si vede nella barra del titolo) <meta> (non si chiude) Attributi: Name: Nome Content: CDATA http-equiv: Nome Esempi: <meta http-equiv="content-type content="text/html; charset=iso-8859-1 > <meta name= author content= Salvo Nicotra > <meta name="keywords" content= html,css,dmi"> Anche i tag <script> <style> <link> vanno in questa sezione
L elemento BODY <body> Attributi: background = uri Sfondo Pagina (deprecated) text = color Colore del testo (deprecated) link, vlink, alink = color Colori dei link da visitare, visitati, rollover Altri attributi comuni: id, class: identificatori lang, dir: informazioni i18n style: informazioni di stile bgcolor=colore colore di sfondo Attributi sugli eventi: onload,onunload, onclick
Due parole sugli identificatori Gli attributi id, class vengono rispettivamente per assegnare un nome unico ad un elemento e per assegnare l elemento ad una o più classi. Ad esempio id viene usato come selettore di stile, come target anchor per i link, per i linguaggi di script, ecc. Class viene usato sostanzialmente per i fogli di stile
Elementi inline o block level Gli elementi HTML si distinguono in inline o block level. I block level contengono altri block level o inline, gli inline solo dati o altri inline. (ad esempio <p> è inline)
Raggruppare gli elementi: div e span <div> contenitore per elementi block level <span> contenitore per elementi in line Aggiungono struttura al documento (divisione in sezioni) Attributi: id, class, lang, dir, style, eventi align = left center right justify (Deprecated) Allineamento orizzontale dell elemento rispetto al contesto Esempio: <div align="center"> Sezione allineata al centro </div>
Titoli (Headings) <h1> <h2> <h3> <h4> <h5> <h6> Sei livelli di titoli (livello di importanza: da 1 a 6). Attributi: id, class, i18n, style, align, eventi Di solito l user agent (il browser) li visualizza usando particolari font e portando a capo il testo successivo. Non servono a fare il testo + grande, ma ad indicare del testo che è considerato + importante nel documento.
Address <address> </address> E un elemento inline. Attributi: id, class, i18n, style, eventi (li chiameremo soliti ) Il tag ADDRESS normalmente si usa all inizio o alla fine del corpo del documento HTML per indicare i riferimenti dell autore e/o curatore della pagina. Il browser può visualizzarlo in corsivo. Esempio: <address> Questo documento è stato scritto da </address>
Tag di testo I seguenti TAG sono tag inline che indicano particolari proprietà del testo. Normalmente il browser li rappresenta in modo particolare, il che non significa che devono essere usati per ottenere effetti visivi!!! Gli attributi per tutti questi tab sono i soliti EM: Indicates emphasis. STRONG: Indicates stronger emphasis. CITE: Contains a citation or a reference to other sources. DFN: Indicates that this is the defining instance of the enclosed term. CODE: Designates a fragment of computer code. SAMP: Designates sample output from programs, scripts, etc. KBD: Indicates text to be entered by the user. VAR: Indicates an instance of a variable or program argument. ABBR: Indicates an abbreviated form (e.g., WWW, HTTP, URI, Mass., etc.). ACRONYM: Indicates an acronym (e.g., WAC, radar, etc.).
blockquote e q Tag per le citazioni. <blockquote> Block-level <q> inline Ammettono l attributo cite=uri per indicare l origine della citazione (oltre i soliti ) q si usa per citazioni in mezzo al testo blocklevel per una citazione lunga Non servono a identare il testo, sebbene sia la normale rappresentazione del visual agent
Apice e Pedice <sub> e <sup> Scrivere l equazione della parabola y=ax 2 +bx+c diventa y=ax<sup>2</sup>+bx+c Descrivere un elemento di una matrice: M i,j M<sub>i,j</sub> Nomi stranieri: <span lang="fr">m<sup>lle</sup> Dupont</span>
Linee e paragrafi Il tag <p> definisce un paragrafo (è inline) Attributi: I soliti + align (deprecated) Per andare a capo forzatamente si usa il tag <br> (sta per break) che non si chiude.
Il Tag PRE (Preformatted) <pre> Inserisce del testo preformattato, cioè del testo che viene stampato dal browser così come lo abbiamo scritto. È un tag inline.
Sui colori I colori vanno in esadecimale ma alcuni sono stati standardizzati con nomi significativi Black = "#000000" Green = "#008000" Silver = "#C0C0C0" Lime = "#00FF00" Gray = "#808080" Olive = "#808000" White = "#FFFFFF" Yellow = "#FFFF00" Maroon = "#800000" Navy = "#000080" Red = "#FF0000" Blue = "#0000FF" Purple = "#800080" Teal = "#008080" Fuchsia = "#FF00FF" Aqua = "#00FFFF
Il tag FONT (Very deprecated) Specifica alcune caratteristiche del font usato. Attributi: Size (intero da 1...7) Color (o #xxyyzz o per nome (black )) Face (lista tipo font da utilizzare (helvetica,verdana..)
Stili di Font TT: Renders as teletype or monospaced text. I: Renders as italic text style. B: Renders as bold text style. BIG: Renders text in a "large" font. SMALL: Renders text in a "small" font. STRIKE e S: Render strike-through style text. (deprecated) U: Renders underlined text (deprecated) I tag fisici (inline) riguardano i font, sebbene non siano tutti deprecated, è sconsigliabile il loro uso in favore degli stili.
Elenchi L HTML permette di rappresentare dati sotto forma di elenco. Tre categorie: Liste non ordinate Liste ordinate Definizioni
Elenchi non ordinati L elenco non ordinato viene introdotto dal TAG <UL> (Unordered List) che va chiuso All interno del TAG ogni elemento va specificato con il TAG <LI> (List Element) Struttura: <ul> <li> Primo elemento </li> <li> i-esimo elemento </li> </UL>
Elenchi ordinati L elenco ordinato viene introdotto dal TAG <ol> (Ordered List) che va chiuso All interno del TAG ogni elemento va specificato con il TAG <li> (List Element) Struttura: <ol> <li> Primo elemento </li> <li> i-esimo elemento </li> </ol>
Alcuni attributi start= elemento_di_partenza ; da applicare a <ol> (deprecated) type= tipo_elenco ; da applicare ad entrambi (deprecated) Per ol i valori sono: 1, A, a, I, i Per ul, i valori sono: circle, square, dis
Elenchi di definizioni Generalmente sono coppie di termini/definizioni. Ad esempio quando si pubblicizza un prodotto si potrebbero indicare: Basso Costo La nuova versione di questo prodotto costa molto meno della precedente; Facile da usare Abbiamo migliorato l usabilità del prodotto Sicuro per i bambini Lo si può lasciare in una stanza con bimbi da soli: non si feriranno (non lo garantiamo)
I Tag <dl> Definition List: Apre l elenco, va chiuso alla fine. <dt>: Definition Term: Definisce il termine <dd>: Definition Description: Definisce la descrizione del termine.
Le liste si possono annidare <ul> <li> Sotto mettiamo una lista </li> <li> <ul> <li>bla</li> </ul> </li> </ul>
Link Collegamenti Ipertestuali Un link è un collegamento tra una risorsa web ed un altra. Costrutto di base per gli ipertesti. Causa di successo del web Un link ha due estremi, detti anchor Source anchor: inizio del link Destination: Risorsa puntata, qualsiasi risorsa web (documenti HTML, video, suoni, immagini, ecc)
Visitare una risorsa linkata Il comportamento di base di un link, di solito attivato dal click del mouse è: Viene prelevata la risorsa Il visual agent (browser) carica la risorsa visualizzandola o nella stessa pagina o in una nuova finestra (o in un frame) o aprendo un programma che gestisce il tipo di file relativo. Un link può puntare ad una parte della stessa pagina.
Il Tag <a> Il tag <a> Anchor, permette la creazione di link all interno di pagine HTML Va chiuso obbligatoriamente Di solito l elemento (la parte compresa tra l inizio e la fine di un tag) viene sottolineato e quando ci si passa sopra il cursore del mouse cambia forma
Il Tag <a> (2) Sintassi <a> Attributi: href= URI, indica la risorsa destinazione, può essere relativo (e.g. nello stesso computer) o assoluto (specificando tutte le parti dell URI). In altre parole specifica l anchor destinazione. name= Nome, da un nome al punto di ancoraggio in modo che possa essere destinazione di 0 o più link.
E tempo di esempi Un link alla pagina dell università <a href= http://www.unict.it >Se clicchi qui vai al sito dell università di Catania </A> Un link a google (importantissimo) <a href= http://www.google.it > <strong> Il motore di Ricerca</strong> </a>
Links nella stessa pagina. <h1> Sommario</h1> <a href= #sezione1> > Sezione 1 </A> altre sezioni <a name= sezione1 > Sezione </A> Scrivere la sezione 1 <a name= sezione2 > Sezione 2</A>
Alcune note I link non si possono annidare. È illegale mettere un link dentro un altro link, oltre che inutile I nomi del link devono essere UNIVOCI Esempio sbagliato <a name= uno > </a> <a name= uno > </a>
Alcune note (bis) Il riferimento ai fragment identifiers, cioè ai nomi dei link, devono essere scritti esattamente come sono stati scritti. Il sistema dei nomi è case-sensitive, cioè distingue in modo diverso maiuscole e minuscole (esempio: Sezione è diverso da sezione )
Alcune note (tris) Gli anchor destination possono essere fissati su qualunque elemento utilizzando l attributo id. Valgono le stesse regole di prima Esempio <h1 id= sezione1 > </h1> Per riferirsi a <A href= #sezione1 > </A> L attributo id serve anche ad altre cose, che vedremo in seguito.
Id or Name? Visto che posso usare due tipi di anchor destination, quale scelgo? Alcune issues L attributo id si usa anche per altre cose (fogli di stile, javascript ) Alcuni vecchi browser non supportano l anchor destination con id L attributo name permette di usare più nomi
Un ultima cosa L attributo target= _blank, permette di aprire una nuova pagina quando si apre il link.
Non solo parole! Aggiungiamo le immagini alle nostre pagine WEB. Un immagine è un rettangolo colorato in cui ogni pixel (picture s element) è caratterizzato da un colore. Un immagine è una risorsa web che deve essere disponibile e localizzata da un URI! Le immagini sono collegate alla pagine HTML, il browser le carica e le visualizza nel punto in cui sono collegate.
E per il WEB? Non tutti i formati di immagini sono supportati dai browser. Consideriamo il sottoinsieme proprio dei formati supportati dai browser GIF (per immagini a pochi colori) JPEG (per fotografie) PNG (in evoluzione alternativa open source a GIF) Molti software per l elaborazione delle immagini supportano un ottimizzazione per comprimere le immagini per il WEB.
Il TAG per le immagini <img> NON VA CHIUSO Attributi: src= URI : obbligatorio: indica la locazione dell immagine. alt= Testo descrittivo : fornisce una descrizione testuale per i browser non visuali width e height, larghezza e altezza dell immagine impostate manualmente, supportano l uso di percentuali. (non obbligatori ma consigliati)
Alcuni altri attributi di IMG hspace= pixels, vspace= pixels (deprecated) Quantità di spazio da mettere a sinistra e a destra dell immagine border= pixels (deprecated) Dimensione del bordo dell immagine align= bottom middle top left right (deprecated) Posizione dell immagine rispetto al contesto
Tabelle Le tabelle costituiscono un modo per organizzare dati in righe e colonne; Le celle delle tabelle possono contenere: Testo Immagini Link Moduli Altre tabelle Le tabelle permettono anche di strutturare le pagine, di raggruppare celle, contenere titoli e didascalie;
Il TAG fondamentale <table> </table> Alcuni attributi: Width (in punti o percentuale, width= 100% allarga la tabella in tutto lo spazio del browser ) Align (left, center, right): allineamento rispetto alla pagina della tabella; (deprecated) Summary: testo, riassunto della tabella, per browser non visuali.
Didascalia della Tabella <caption> </caption> Indica una didascalia della tabella Se si vuole inserire, va messo subito dopo <table> Attributi: Align (top,bottom, left, right) (deprecated)
I tre gruppi fondamentali Ogni tabella è costituita da tre parti fondamentali: <thead>: intestazioni <tfoot>: finale <tbody>: corpo
Tabelle I tag <thead>, <tbody> e <tfoot> non sono obbligatori, possono essere omessi. <tbody> ci deve essere sempre tranne quando la tabella è fatta da una sola riga e non ci sono <thead> e <tfoot> I tag <thead> e <tfoot> ci devono essere solo quando la tabella ha rispettivamente intestazioni in alto o in basso. Possono esistere più blocchi <tbody>
Inserire una nuova Riga <tr> Table Row Crea una riga della tabella Attributi: bgcolor (colore di sfondo della riga) align (left,center,right,justify) valign (top,middle,bottom)
Inserire una colonna <td> Table Data Inserisce un elemento di colonna Attributi Width=percentuale o numeropixels; (deprecated) Height=percentuale o numeropixels; (deprecated) Rowspan=di quante righe mi prendo lo spazio? Colspan=di quante colonne mi prendo lo spazio? Bgcolor Align, valign
Esempio <table> <caption align="bottom">didascalia</caption> <tr> <td> Uno </td> <td> Due </td> <td> Tre </td> </tr> <tr> <td> Quattro </td> <td> Cinque </td> <td> Sei </td> </tr> <tr> <td> Sette </td> <td> Otto </td> <td> Nove </td> </tr> </table>
Formattazione della tabella da parte del browser Esistono alcune attributi della tabella che riguardano la visualizzazione della tabella. Stile del bordo Allineamento orizzontale e verticale del contenuto delle celle Margini delle celle
Bordi Frame (quale lato del rettangolo attorno l elemento deve essere visibile) Void (nessuno) Above Below Hsides Vsides Lhs Rhs Box Border
Rules Indica quale linee mettere tra le celle dentro la tabella rules= None Rows Cols all
Grandezza del bordo Grandezza del bordo Border = pixels Alcune regole Border= 0 implica frame= void
Allineamenti E possibile allineare il contenuto delle celle in modo autonomo. align= left center right justify valign = top middle bottom baseline
Ereditarietà delle specifiche di allineamento L allineamento orizzontale di una cella può essere specificato: Nell elemento stesso (ad esempio con <p> o <span>) Nella definizione dell elemento stesso <td> Nella riga di appartenza <tr> Nella tabella stessa
Ereditarietà delle specifiche di allineamento L allineamento verticale di una cella può essere specificato: Nell elemento stesso (ad esempio con <p>) Nella definizione dell elemento stesso <td> Nella riga di appartenza <tr> Nella tabella stessa
Margini Cellspacing = length (indica il numero di pixel da lasciare tra le celle e le celle con il bordo della tabella Cellpadding = lenght (indica il numero di pixel da lasciare tra la cella e il suo bordo).
Tabelle: In short <TABLE width border summary frames rules cellspacing cellpadding bgcolor background > <CAPTION align> </CAPTION> (opzionale) <thead> <tfoot> <tbody> <TR bgcolor align valign> <td o th bgcolor rowspan colspan width height align>... </table>
Anche l occhio vuole la sua parte Se le pagine web, in origine, sono nate dalla necessità di scrivere documenti in una lingua nota a tutti (e quindi sottolineando l aspetto semantico), Oggi le pagine web sono oggetto di consumo di milioni di persone e di conseguenza l aspetto spartano (ma chiaro) della pagine ha lasciato spazio all uso della grafica a scopo prevalentemente estetico.
Soluzioni prive di stile Il TAG Font e vari attributi (bgcolor ) L uso di tabelle e frames per il layout L uso di immagini-link Le mappe cliccabili Uso di TAG proprietari (Marquee su tutti Usare programmi (Applet Java, Flash, Shockwave, plugin vari) Dynamic HTML
Parole Nuove Accessibilità di un sito web Usabilità di un sito web Web-Designer
Idea Usare l HTML per descrivere il contenuto della pagine e definire un nuovo linguaggio (CSS) per controllare il layout globale della pagina. Separare dunque l aspetto grafico da quello informativo allo scopo di migliorare la navigazione, l usabilità e l aspetto estetico delle pagine.
I Fogli di Stile (CSS) CSS sta Cascading Style Sheets Gli stili definiscono come mostrare gli elementi HTML. Gli Stili sono normalmente immagazzinati in Style Sheets (Fogli di stile) Gli Stili sono stati aggiunti all HTML per risolvere un problema. I Fogli di stile esterni (.css) permettono di creare uno stile per una serie di pagine, e di risparmiare tempo. Le definizioni di stile multipli seguono precise regole di gerarchie (Cascading).
Gli stili: Risolvere un problema I Tag HTML sono stati creati per definire il contenuto di un documento. I TAG devono dire: questo è un paragrafo, questa è una tabella, questo è un titolo, ecc. Il Layout del documento era relegato al browser. Visto che IE e Netscape cominciavano ad aggiungere HTML tags e attributi (come FONT o l attributo bgcolor) alla specifica originale dell HTML, diventava sempre più difficile creare pagine Web che separassero chiaramente il contenuto dal layout. Per risolvere il problema, il World Wide Web Consortium (W3C) ha creato gli STILI aggiungendoli alla specifica HTML 4.0. Sia Netscape 4.0 (e superiori) che Internet Explorer 4.0 (e superiori) supportanno Cascading Style Sheets.
Fogli di stile:risparmio di tempo Gli stili in HTML 4 definiscono come gli elementi HTML devono essere visualizzati, similmente a come fa il tag FONT. I fogli di stile sono normalmente memorizzati al di fuori dei documenti HTML e usati da tutti i documenti. Se volessi cambiare l apparenza e il layout di tutto il sito, basta cambiare il foglio di stile senza modificare l HTML. CSS fa risparmiare tempo!
Multiple Styles Will Cascade Into One I fogli di stile permettono di specificare informazioni di stile in molti modi: Gli stili possono essere specificati: Dentro un elemento HTML (con l attributo style) Dentro un documento HTML (nella sezione HEAD) Esternamente in un file CSS e richiamati dentro un documento HTML
Cascading Order Quale stile viene usato quando vengono definiti più stili per lo stesso elemento? In generale, tutti gli stili cascade dentri un unico foglio di stile virtuale dove vengono rispettate le seguenti priorità (dal meno importante al più importante) Browser default External Style Sheet Internal Style Sheet (in <head> ) Inline Style (nell elemento HTML)
Sintassi CSS La sintassi di CSS è composta da tre parti: Un selettore (tipicamente il tag HTML da formattare) Una proprietà (un attributo da cambiare) Un Valore (valore ammissibile per la proprietà) selector {property: value} La proprietà e il valore sono divise da i due punti e dentro le parentesi graffe. body {color: black} Se il valore è un parola con spazi va messo tra virgolette. p {font-family: "sans serif"}
Specificare più proprietà Si possono specificare più proprietà comuni allo stesso selector (ad esempio colore del testo e allineamento per il tag P) separandole con il ; p {text-align:center;color:red} Allo scopo di migliorare la lettura dello stile si preferisce scriverlo nella forma: p { text-align: center; color: black; font-family: arial; }
Grouping I selettori possono essere raggruppati. L elemento di separazione è la virgola. Esempio: Tutti gli headings (titoli) scritti in verde. h1,h2,h3,h4,h5,h6 { color: green }
Esempio <style type="text/css"> h1 {color: red; text-align: center; font-size:24px} p {color: rgb(12,154,130); text-align: justify; font-size:12px} table {background:blue} td {color: yellow; text-align: center; font-size:14px; fontfamily:arial} </style>
The class Selector E possibile specificare uno stile specifico per un elemento in modo da caratterizzarlo ulteriormente. Ad esempio potrei volere un tipo paragrafo con allineamento a destra e corsivo e un altro tipo paragrafo centrato e grassetto. Con i fogli di stile è possibile definire un sotto tipo e richiamarlo con l attributo class. p.right {text-align: right; font-style: italic} p.center {text-align: center; font-weight:bold} Per richiamare i due tipi di paragrafo <p class="right"> Paragrafo a destra e corsivo </p> <p class="center"> Paragrafo centrato e grassetto </p> SEE
Definizioni Generali Il selettore può anche essere del tipo.nomeclasse il che vuol dire che tutti gli elementi HTML (specificando la classe) saranno formattati allo stesso modo.center {text-align: center} Significa tutti gli elementi con class= center saranno allineati al centro. <h1 class="center"> Titolo Centrato </h1> <p class="center"> Paragrafo centrato </p> See
CSS Comments Possono essere inseriti commenti nei fogli di stile mettendoli tra /* e */ Esempio /* questo è un commento */ p { text-align: center; /* Altro commento */ color: black; font-family: arial }
Scrivere CSS: Esterni Un foglio di stile esterno è ideale per siti che hanno più pagine su cui mantenere lo stesso stile. Con un foglio di stile esterno, è possibile cambiare il look di un sito, semplicemente cambiando un file. I fogli di stile vengono richiamati dentro le pagine HTML con il TAG <LINK> Il Tag <LINK> va messo nella sezione <HEAD> e ha questa forma <head> <link rel="stylesheet" type="text/css" href= miofile.css" /> </head> Il browser leggerà il foglio di stile e si preoccuperà di formattare la pagina come descritto nel file css. I file css possono essere scritti in quasiasi editor di testo (tipo Blocco Note) Il file CSS non deve contenere TAG HTML ma solo definizioni di stile. L estensione del file deve essere.css
Scrivere CSS: Interni I CSS interni vanno definiti se un documento HTML deve avere uno specifico stile. La struttura del CSS interno è racchiusa nell elemento <style> da inserire nel HEAD del documento. <head> <style type="text/css"> hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} </style> </head>
Scrivere CSS: Inline Gli stili possono essere specificati anche nell elemento stesso tramite l attributo style. Questo metodo va usato quando si vuole specificare uno stile da applicare ad un singolo elemento. Lo stile inline ha la stessa struttura di uno stile qualsiasi. Nell esempio sotto, vediamo come cambiare il colore e il margine sinistro di un paragrafo. <p style="color: sienna; margin-left: 20px"> Questo è un paragrafo </p>