# 3 - I formati di specifica dello stile

Il formato delle specifiche di stile dipende dal livello del foglio di stile.

### Specifiche di stile inline

Le specifiche di stile inline appaiono come valori dell'attributo `style` di un tag, la cui forma generale e':

`<TAG style = "proprieta_1: valore_1; proprieta_2: valore_2; ... ; proprieta_n: valore_n"> ... </TAG>`

Il raggio di azione delle specifiche di stile inline e' ristretto al contenuto del tag in cui appaiono.

### Specifiche di stile a livello di documento

Le specifiche di stile a livello del documento sono il contenuto di un tag `<style>` all'interno dell'intestazione del documento, nonostante il formato delle specifiche sia alquanto differente da quello dei fogli di stile inline. La forma gnererale del contenuto di un tag `<style>` e':

`<head>
...
<style type = "text/css" >
<!--
elenco delle regole
-->
</style>
...
</head>`

L'attributo `type` del tag `<style>` indica al browser i tipo di specifica dello stile all'interno del tag. Nell'esempio precedente l'attributo `type` e' impostato su `"text/css"`, quindi sui fogli di tile a cascata. Il tipo di specifica dello stile e' necessario perche' vi sono altri tipi di fogli di stile, per esempio quelli forniti da Javascript che possono comunque apparire nei tag `<style>`.

Come si puo' notare, l'elenco delle regole nel tag `<style>` appare in un commento HTML. Il motivo e' che non si tratta propriamente di un elenco di regole HTML, in quanto contiene informazioni relative allo stile di presentazione dirette al brwoser e non all'utente. Il contenuto di un tag `<style>` e' un commento HTML, per questo vi deve essere un modo diverso per inserire un commento effettivo nel contenuto di un tag `<style>`. Per inserire tali commenti si utilizzano "`/*`" in apertura e "`*/`" in chiusura.

#### Regole di stile

Ogni regola di stile in un elenco (di regole) e' costituita da due parti:

- un selettore dei tag a cui viene applicata la regola,
- un elenco di coppie proprieta'-valori.

Diversamente dalle coppie proprieta'-valori degli attributi dei tag (in cui i due componenti di ogni coppia sono separati dal simbolo di uguaglianza e l'elenco e' delimitato da doppie virgolette), le componenti propriata'-valori dello stile in una regola di stile sono sepratate da due punti ":", mentre l'elenco appare tra parentesi graffe.

La forma generale di una regola di stile e' la seguente:

`elenco_nomi_tag {proprieta_1: valore_1; proprieta_2: valore_2; ... ; proprieta_n: valore_n}`

In questa forma "elenco_nomi_tag" puo' essere sia un nome singolo di tag oppure un elenco di nomi di tag separati da virgole.

Come si puo' notare, si e' parlato di nomi di tag e non di tag, per cui in questo caso non sono necessarie le parentesi angolari.

Se ad una proprieta' viene assegnato piu' di un valore, questi valori vengono separati di norma da spazi. Tuttavia per alcune proprieta' i valori vengono separati da virgole.

`elenco_nomi_tag { ... ; proprietai: valorei1 ... valoreim ; ... }`

### Fogli di Stile Esterni

I fogli di stile esterni hanno una forma simile a quella dei fogli di stile a livello di documento e consistono in un elenco di regole di stile.

Normalmente una proprieta' di stile si applica a tutte le occorrenza dei tag nel raggio di azione del foglio di stile, raggio d'azione che per i fogli di stile inline e' litato al contenuto del solo tag. Per i fogli di stile a livello del documento il raggio di azione e' il corpo del documento, mentre per i fogli di stile esterni e' l'insieme dei corpi dei documenti che li utilizzano. Il raggio di azione puo' venire limitato a contenuti specifici, ma questo argomento verra' affrontato in seguito.