Selettore CSS per un elemento avente classe .a e classe .b
-
03-07-2019 - |
Domanda
Devo progettare un elemento che abbia sia la classe .a
che la classe .b
. Come lo faccio?
L'ordine in cui le classi compaiono nell'HTML può variare.
<style>
div.a ? div.b {
color:#f00;
}
</style>
<div class="a">text not red</div>
<div class="b">text not red</div>
<div class="a b">red text</div>
<div class="b a">red text</div>
Soluzione
Questo è del tutto possibile. Se specifichi due classi su un elemento (senza spazi), ciò significa che deve avere entrambi per applicare la regola.
div.a {
color: blue;
}
div.b {
color: green;
}
div.a.b {
color: red;
}
<div class="a">
A
</div>
<div class="b">
B
</div>
<div class="a b">
AB
</div>
Altri suggerimenti
I selettori di classe possono essere combinati:
div.a.b {
color: red;
}
Citando da le specifiche :
Per abbinare un sottoinsieme di " class " valori, ogni valore deve essere preceduto da un ". " ;.
Ad esempio, la seguente regola corrisponde a qualsiasi elemento P la cui "classe" è quotata All'attributo è stato assegnato un elenco di valori separati da spazio che include "pastorale" e " marine " ;:
p.marine.pastoral { color: green }
Questa regola corrisponde quando
class = " pastoral blue aqua marine "
ma non corrisponde perclass = " pastoral blue "
.
div[class~="a"][class~="b"]{
color:#f00;
}
/ * seleziona tag div con classe aeb insieme * /
<style>
div.a.b
{
color:#f00;
}
</style>
<div class="a">text not red</div>
<div class="b">text not red</div>
<div class="a b">red text</div>
<div class="b a">red text</div>
Sì, usa una classe comune o, perché no, JavaScript se il contenuto cambia in modo dinamico