CSS/Selettori: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Update syntaxhighlight tags - remove use of deprecated <source> tags
 
Riga 9:
== Tag ==
Il caso più semplice di selettore, che definisce gli attributi CSS per tutti gli '''elementi con un determinato nome''', è quello di un semplice tag. In questo caso gli attributi verranno applicati ogni volta che quel tag è presente nel documento. Ad esempio:
<sourcesyntaxhighlight lang=css>p { border: 1px dotted blue; }</sourcesyntaxhighlight>
Questo codice di esempio farà in modo che ogni elemento <code>p</code> (i paragrafi) della pagina abbia un bordo blu tratteggiato di un pixel di spessore.
 
== ID e classi ==
Un '''id''' è un selettore CSS che può essere assegnato ad un solo elemento nella pagina, identificato univocamente dall'attributo <code>id</code>. Una classe è un insieme di proprietà che può essere invece assegnato a uno o più elementi tramite l'attributo <code>class</code>. La sintassi è:
<sourcesyntaxhighlight lang=css>
#nome_id { dichiarazioni }
.nome_classe { dichiarazioni }
</syntaxhighlight>
</source>
e, nel documento, sono richiamate in questo modo:
<sourcesyntaxhighlight lang=html4strict>
<elemento id="nome_id">...</elemento>
<elemento class="nome_classe">...</elemento>
</syntaxhighlight>
</source>
Per quanto riguarda le classi, è possibile stabilire dichiarazioni diverse a seconda essa sia attribuita ad un elemento piuttosto che ad un'altra:
<sourcesyntaxhighlight lang=css>
p.evidenziato { dichiarazioni }
h1.evidenziato { dichiarazioni }
</syntaxhighlight>
</source>
imposta uno stile diverso a seconda che la classe evidenziato sia attribuita a elementi H1 e elementi P. È possibile inoltre stabilire sottoclassi, la cui sintassi è
<sourcesyntaxhighlight lang=css>
elemento.classe.sottoclasse { dichiarazioni }
</syntaxhighlight>
</source>
Nell'esempio precedente avremmo potuto quindi aggiungere:
<sourcesyntaxhighlight lang=css>
p.evidenziato.grassetto { dichiarazioni }
</syntaxhighlight>
</source>
e, nel documento:
&lt;p class="evidenziato grassetto"&gt;...&lt;/p&gt;
Riga 44:
== Raggruppare i selettori ==
È possibile definire più selettori per una stessa dichiarazione:
<sourcesyntaxhighlight lang="css">
selettore1, selettore2, ... {
dichiarazioni
}
</syntaxhighlight>
</source>
Per esempio:
<sourcesyntaxhighlight lang="css">
h1, #mioID, .rosso {
color: red;
}
</syntaxhighlight>
</source>
Con questo codice, sia i tag <code>h1</code>, che gli elementi con classe <code>rosso</code> o ID <code>mioID</code> avranno il testo di colore rosso.
=== Le pseudo-classi ===
Esistono particolari classi che identificano le proprietà di un selettore in base al proprio stato, chiamate '''pseudo-classi'''. La sintassi è
<sourcesyntaxhighlight lang=css>
elemento:stato { dichiarazioni }
</syntaxhighlight>
</source>
Il loro uso è legato soprattutto ai tag <code>&lt;a&gt;</code>; gli stati definibili per i link sono:
* '''link ''' indica lo stato di un collegamento non ancora visitato
Riga 67:
* '''active ''' indica lo stato di un collegamento quando l'utente fa clic su di esso
Un altro stato definibile è '''focus''', utilizzato soprattutto per i campi dei form, che identifica lo stato di un elemento che ha ottenuto il focus da parte dell'utente. Una ulteriore pseudo-classe è associata alla lingua dell'utente. Ad esempio:
<sourcesyntaxhighlight lang=css>
elemento:lang(it) //definizione per utenti italiani
elemento:lang(en) //definizione per utenti anglosassoni
</syntaxhighlight>
</source>
 
È interessante la possibilità di definire uno '''stile dipendente da una pseudoclasse''' di un altro elemento. Ad esempio:
<sourcesyntaxhighlight lang=css>
a#menu:hover div#menudiv {
position: absolute;
width: 300px;
}
</syntaxhighlight>
</source>
Questo codice imposta uno stile per gli elementi <code>div</code> con id <code>menudiv</code> e per i collegamenti con id <code>menu</code> quando il mouse vi si trova sopra.
 
== Gli pseudo-elementi ==
Gli '''pseudo-elementi''' identificano elementi specifici ma che non sono identificati da tag o attributi. La sintassi è:
<sourcesyntaxhighlight lang=css>
elemento:nome_pseudoelemento { dichiarazioni }
</syntaxhighlight>
</source>
I principali pseudo-elementi sono:
*'''first-child''' identifica il primo elemento figlio contenuto nell'elemento
Riga 96:
Basandosi sulla '''gerarchia degli elementi''' nel documento è possibile definire alcuni stili particolari.
*'''elementi figli''': è possibile definire uno stile per tutti gli elementi contenuti in un altro. La sintassi è:
<sourcesyntaxhighlight lang=css>
elemento_genitore elemento_figlio { dichiarazioni }
</syntaxhighlight>
</source>
:Ad esempio:
<sourcesyntaxhighlight lang=css>
h1 b { dichiarazioni }
</syntaxhighlight>
</source>
:identifica tutti gli elementi <code>b</code> contenuto anche non direttamente in un elemento <code>h1</code>
*'''elementi fratelli''': il primo elemento allo stesso livello di un altro che abbia quindi lo stesso legame di parentela. La sintassi è
<sourcesyntaxhighlight lang=css>
elemento1 + elemento2 { dichiarazioni }
</syntaxhighlight>
</source>
:e identifica il primo elemento1 fratello di un elemento2