033.1 Lezione 1
Certificazione: |
Web Development Essentials |
---|---|
Versione: |
1.0 |
Argomento: |
033 Stile dei Contenuti con i CSS |
Obiettivo: |
033.1 Concetti Base dei CSS |
Lezione: |
1 di 1 |
Introduzione
Tutti i browser web mostrano le pagine HTML usando regole di presentazione predefinite che sono pratiche e dirette, ma non visivamente attraenti. L’HTML di per sé offre poche caratteristiche per scrivere pagine elaborate basate sui moderni concetti di User Experience. Dopo aver scritto semplici pagine HTML, ti sarai probabilmente reso conto che sono antiestetiche se paragonate a pagine ben progettate trovi su Internet. Questo perché, nel moderno HTML, il codice di markup destinato alla struttura e alla funzione degli elementi nel documento (cioè, il contenuto semantico) è separato dalle regole che definiscono come gli elementi dovrebbero apparire (la presentazione). Le regole di presentazione sono scritte in un linguaggio diverso chiamato Cascading Style Sheets (CSS). Esso permette di cambiare quasi tutti gli aspetti visivi del documento, come i caratteri, i colori, e il posizionamento degli elementi lungo la pagina. I documenti HTML non sono, nella maggior parte dei casi, destinati a essere visualizzati in un layout fisso come un file PDF. Piuttosto, le pagine web basate su HTML saranno probabilmente visualizzate su un’ampia varietà di dimensioni dello schermo o anche stampate. I CSS forniscono opzioni regolabili per assicurare che la pagina web sia resa come previsto, adattata al dispositivo o all’applicazione che la apre.
Applicare gli Stili
Ci sono diversi modi per includere i CSS in un documento HTML: scriverli direttamente nel tag dell’elemento, in una sezione separata del codice sorgente della pagina, o in un file esterno a cui fare riferimento nella pagina HTML.
L’Attributo style
Il modo più semplice per modificare lo stile di un elemento specifico è quello di scriverlo direttamente nel tag dell’elemento usando l’attributo style
. Tutti gli elementi HTML visibili permettono un attributo style
, il cui valore può essere una o più regole CSS, note anche come proprietà. Iniziamo con un semplice esempio, un elemento paragrafo:
<p>My stylized paragraph</p>
La sintassi di base di una proprietà CSS personalizzata è property: value
, dove property
è il particolare aspetto che vuoi cambiare nell’elemento e valore definisce la sostituzione dell’opzione di default fatta dal browser. Alcune proprietà si applicano a tutti gli elementi e alcune proprietà si applicano solo a elementi specifici. Allo stesso modo, ci sono valori appropriati da usare in ogni proprietà.
Per cambiare il colore del nostro semplice paragrafo, per esempio, usiamo la proprietà color
. La proprietà color
si riferisce al colore foreground, cioè il colore delle lettere nel paragrafo. Il colore stesso va nella parte del valore della regola e può essere specificato in molti formati diversi, inclusi nomi semplici come red
, green
, blue
, yellow
e così via. Quindi, per rendere la lettera del paragrafo purple
, aggiungi la proprietà personalizzata color: purple
all’attributo style
dell’elemento:
<p style="color: purple">My first stylized paragraph</p>
Altre proprietà personalizzate possono andare nella stessa proprietà style
, ma devono essere separate da punto e virgola. Se vuoi rendere la dimensione del carattere più grande, per esempio, aggiungi font-size: larger
alla proprietà style
:
<p style="color: purple; font-size: larger">My first stylized paragraph</p>
Note
|
Non è necessario aggiungere spazi intorno ai due punti e ai punti e virgola, ma possono rendere più facile la lettura del codice CSS. |
Per vedere il risultato di queste modifiche, salvate il seguente HTML in un file e poi apritelo in un browser web (i risultati sono mostrati in Figure 1):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSS Basics</title>
</head>
<body>
<p style="color: purple; font-size: larger">My first stylized paragraph</p>
<p style="color: green; font-size: larger">My second stylized paragraph</p>
</body>
</html>
Puoi immaginare ogni elemento della pagina come un rettangolo o una scatola cui puoi modificare, tramite i CSS, proprietà geometriche e decorazioni. Il meccanismo di rendering usa due concetti standard di base per il posizionamento degli elementi: il posizionamento a blocco e il posizionamento in linea. Gli elementi a blocco occupano tutto lo spazio orizzontale del loro elemento padre e sono posizionati in modo sequenziale, dall’alto verso il basso. La loro altezza (la loro dimensione verticale, da non confondere con la loro posizione in alto nella pagina) dipende generalmente dalla quantità di contenuto che hanno. Gli elementi in linea seguono il metodo da sinistra a destra simile alle lingue scritte occidentali: gli elementi sono posizionati orizzontalmente, da sinistra a destra, fino a quando non c’è più spazio sul lato destro, dopodiché l’elemento continua su una nuova linea proprio sotto quella corrente. Elementi come p
, div
e section
sono posizionati di default come blocchi, mentre elementi come span
, em
, a
e singole lettere sono posizionati in linea. Questi metodi di posizionamento di base possono essere fondamentalmente modificati dalle regole
CSS.
Il rettangolo corrispondente all’elemento p
nel corpo del documento HTML di esempio sarà visibile se si aggiunge la proprietà background-color
alla regola (Figure 2):
<p style="color: purple; font-size: larger; background-color: silver">My first stylized paragraph</p>
<p style="color: green; font-size: larger; background-color: silver">My second stylized paragraph</p>
Man mano che aggiungi nuove proprietà CSS personalizzate all’attributo style
, noterai che il codice complessivo inizia a diventare disordinato. Scrivere troppe regole CSS nell’attributo style
mina la separazione tra struttura (HTML) e presentazione (CSS). Inoltre, ti renderai presto conto che molti stili sono condivisi tra diversi elementi e non è saggio ripeterli in ogni elemento.
Regole dei CSS
Invece di applicare lo stile agli elementi direttamente nei loro attributi style
, è molto più pratico indicare al browser l’intera collezione di elementi a cui si applica lo stile personalizzato. Lo facciamo aggiungendo un selettore alle proprietà personalizzate, abbinando elementi per tipo, classe, ID unico, posizione relativa e così via. La combinazione di un selettore e delle corrispondenti proprietà personalizzate — conosciuta anche come dichiarazione — è chiamata regola CSS. La sintassi di base di una regola CSS è selector { property: value }
. Come nell’attributo style
, le proprietà separate da punti e virgola possono essere raggruppate insieme, come in p { color: purple; font-size: larger }
. Questa regola corrisponde a ogni elemento p
nella pagina e applica le proprietà personalizzate color
e font-size
.
Una regola CSS di un elemento genitore corrisponderà automaticamente a tutti i suoi elementi figli. Questo significa che potremmo applicare le proprietà personalizzate a tutto il testo nella pagina, indipendentemente dal fatto che sia dentro o fuori un tag <p>
, usando invece il selettore body
: body { color: purple; font-size: larger }
. Questa strategia ci libera dallo scrivere di nuovo la stessa regola per tutti i figli, ma potrebbe essere necessario scrivere regole aggiuntive per “annullare” o modificare le regole ereditate.
Il Tag style
Il tag <style>
ci permette di scrivere regole CSS all’interno della pagina HTML che vogliamo “stilizzare”. Permette al browser di differenziare il codice CSS dal codice HTML. Il tag <style>
va nella sezione head
del documento:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSS Basics</title>
<style type="text/css">
p { color: purple; font-size: larger }
</style>
</head>
<body>
<p>My first stylized paragraph</p>
<p>My second stylized paragraph</p>
</body>
</html>
L’attributo type
dice al browser che tipo di contenuto è dentro il tag <style>
, cioè il suo MIME type. Poiché ogni browser che supporta i CSS assume che il tipo del tag <style>
sia di default text/css
, includere l’attributo type
è opzionale. C’è anche un attributo media
— schermi di computer o stampanti, per esempio — a cui si applicano le regole CSS nel tag <style>
. Per impostazione predefinita, le regole CSS si applicano a qualsiasi supporto in cui il documento venga visualizzato.
Come nel codice HTML, le interruzioni di riga e l’indentazione del codice non cambiano il modo in cui le regole CSS sono interpretate dal browser. Quindi scrivere:
<style type="text/css">
p { color: purple; font-size: larger }
</style>
ha lo stesso risultato di scrivere:
<style type="text/css">
p {
color: purple;
font-size: larger;
}
</style>
I byte extra utilizzati dagli spazi e dalle interruzioni di riga fanno poca differenza nella dimensione finale del documento e non hanno un impatto significativo sul tempo di caricamento della pagina, quindi la scelta del layout è una questione di gusto. Nota il punto e virgola dopo l’ultima dichiarazione (font-size: larger;
) della regola CSS. Quel punto e virgola non è obbligatorio, ma averlo lì rende più facile aggiungere un’altra dichiarazione nella riga successiva senza preoccuparsi dei punti e virgola mancanti.
Avere le dichiarazioni in linee separate aiuta anche quando hai bisogno di commentare una dichiarazione. Ogni volta che vuoi disabilitare temporaneamente una dichiarazione per ragioni di risoluzione dei problemi, per esempio, puoi racchiudere la linea corrispondente con /*
e */
:
p {
color: purple;
/*
font-size: larger;
*/
}
o:
p {
color: purple;
/* font-size: larger; */
}
Scritta così, la dichiarazione font-size: larger
sarà ignorata dal browser. Fai attenzione ad aprire e chiudere correttamente i commenti, altrimenti il browser potrebbe non essere in grado di interpretare le regole.
I commenti sono anche utili per scrivere promemoria sulle regole:
/* Texts inside <p> are purple and larger */
p {
color: purple;
font-size: larger;
}
I promemoria come quello nell’esempio sono sacrificabili nei fogli di stile che contengono un piccolo numero di regole, ma sono essenziali per aiutare la navigazione dei fogli di stile con centinaia (o più) di regole.
Anche se l’attributo style
e il tag <style>
sono adeguati per testare stili personalizzati e utili per situazioni specifiche, non vengono usati comunemente. Invece, le regole CSS sono solitamente tenute in un file separato che può essere referenziato dal documento HTML.
I CSS in File Esterni
Il metodo preferito per associare le definizioni CSS a un documento HTML è quello di memorizzare i CSS in un file separato. Questo metodo offre due vantaggi principali rispetto ai precedenti:
-
Le stesse regole di stile possono essere condivise tra documenti diversi.
-
Il file CSS viene solitamente memorizzato nella cache dal browser, migliorando i tempi di caricamento futuri.
I file CSS hanno l’estensione .css
e, come i file HTML, possono essere modificati con qualsiasi editor di testo semplice. A differenza dei file HTML, i file CSS non hanno una struttura di livello superiore costruita con tag gerarchici come <head>
o <body>
. Piuttosto, il file CSS è solo una lista di regole processate in ordine sequenziale dal browser. Le stesse regole scritte dentro un tag <style>
potrebbero invece andare in un file CSS.
L’associazione tra il documento HTML e le regole CSS memorizzate in un file è definita solo nel documento HTML. Al file CSS non importa se esistono elementi che corrispondono alle sue regole, quindi non c’è bisogno di enumerare nel file CSS i documenti HTML a cui è collegato. Sul lato HTML, ogni foglio di stile collegato verrà applicato al documento, proprio come se le regole fossero scritte in un tag <style>
.
Il tag HTML <link>
definisce un foglio di stile esterno da usare nel documento corrente e dovrebbe andare nella sezione head
del documento HTML:
<head>
<meta charset="utf-8" />
<title>CSS Basics</title>
<link href="style.css" rel="stylesheet">
</head>
Ora puoi mettere la regola per l’elemento p
che abbiamo usato prima nel file style.css
, e i risultati visti dal visitatore della pagina web saranno gli stessi. Se il file CSS non è nella stessa directory del documento HTML, specifica il suo percorso relativo o assoluto nell’attributo href
. Il tag <link>
può riferirsi a diversi tipi di risorse esterne, quindi è importante stabilire quale relazione ha la risorsa esterna con il documento corrente. Per i file CSS esterni, la relazione è definita da rel="stylesheet"
.
L’attributo media
può essere usato nello stesso modo del tag <style>
: indica i media, come gli schermi del computer o la stampa, ai quali si devono applicare le regole del file esterno.
I CSS possono cambiare completamente un elemento, ma è comunque importante usare l’elemento appropriato per i componenti della pagina. Questo dovrebbe evitare che le tecnologie assistive come gli screen-reader possano non essere in grado di identificare le sezioni corrette della pagina.
Esercizi Guidati
-
Quali metodi si possono usare per cambiare l’aspetto degli elementi HTML usando i CSS?
-
Perché non si raccomanda di usare l’attributo
style
del tag<p>
se ci sono paragrafi fratelli che devono avere lo stesso aspetto? -
Qual è la politica di posizionamento predefinita nel posizionare un elemento
div
? -
Quale attributo del tag
<link>
indica la posizione di un file CSS esterno? -
Qual è la sezione corretta per inserire l’elemento
link
in un documento HTML?
Esercizi Esplorativi
-
Perché non si raccomanda di usare un tag
<div>
per identificare una parola in una frase ordinaria? -
Che cosa succede se inizi un commento con
/*
nel mezzo di un file CSS, ma dimentichi di chiuderlo con*/
? -
Scrivi una regola CSS per disegnare una sottolineatura in tutti gli elementi
em
del documento. -
Come si può indicare da un tag
<style>
o<link>
che un foglio di stile dovrebbe essere usato solo dai sintetizzatori vocali?
Sommario
Questa lezione tratta i concetti di base dei CSS e come integrarli con l’HTML. Le regole scritte nei fogli di stile CSS sono il metodo standard per cambiare l’aspetto dei documenti HTML. I CSS ci permettono di mantenere il contenuto semantico separato dalle politiche di presentazione. Questa lezione passa attraverso i seguenti concetti e procedure:
-
Come cambiare le proprietà CSS usando l’attributo
style
. -
La sintassi di base delle regole CSS.
-
Usare il tag
<style>
per incorporare le regole CSS nel documento. -
Usare il tag
<link>
per incorporare fogli di stile esterni al documento.
Risposte agli Esercizi Guidati
-
Quali metodi si possono usare per cambiare l’aspetto degli elementi HTML usando i CSS?
Tre metodi di base: Scriverlo direttamente nel tag dell’elemento, in una sezione separata del codice sorgente della pagina; o in un file esterno cui fare riferimento nella pagina HTML.
-
Perché non si raccomanda di usare l’attributo
style
del tag<p>
se ci sono paragrafi fratelli che devono avere lo stesso aspetto?La dichiarazione CSS dovrà essere replicata negli altri tag
<p>
, il che richiede tempo, aumenta la dimensione del file ed è soggetto a errori. -
Qual è la politica di posizionamento predefinita nel posizionare un elemento
div
?L’elemento
div
è trattato come un elemento di blocco per default, quindi occuperà tutto lo spazio orizzontale del suo elemento genitore e l’altezza dipenderà dal suo contenuto. -
Quale attributo del tag
<link>
indica la posizione di un file CSS esterno?L’attributo
href
. -
Qual è la sezione corretta per inserire l’elemento
link
in un documento HTML?L’elemento
link
dovrebbe essere nella sezionehead
del documento HTML..
Risposte agli Esercizi Esplorativi
-
Perché non si raccomanda di usare un tag
<div>
per identificare una parola in una frase ordinaria?Il tag
<div>
fornisce una separazione semantica tra due sezioni distinte del documento e interferisce con gli strumenti di accessibilità quando è usato per elementi di testo in linea. -
Che cosa succede se inizi un commento con
/*
nel mezzo di un file CSS, ma dimentichi di chiuderlo con*/
?Tutte le regole dopo il commento saranno ignorate dal browser.
-
Scrivi una regola CSS per disegnare una sottolineatura in tutti gli elementi
em
del documento.em { text-decoration: underline }
o
em { text-decoration-line: underline }
-
Come si può indicare da un tag
<style>
o<link>
che un foglio di stile dovrebbe essere usato solo dai sintetizzatori vocali?Il valore dell’attributo
media
deve esserespeech
.