Ich habe HTML-Code mit Elementen mit mehreren Klassen, und ich muss sie innerhalb einer Regel zuweisen, damit dieselben Klassen in verschiedenen Containern unterschiedlich sein können. Angenommen, ich habe dies in meinem CSS:
.border-blue {
border: 1px solid blue;
}
.background {
background: url(bg.gif);
}
Dann habe ich das in meinem HTML:
<div class='border-blue background'>Lorum Crap No-one Cares About Ipsum</div>
Kann ich diese innerhalb einer einzigen Regel ansprechen? So funktioniert zum Beispiel, von dem ich weiß, dass es nicht funktioniert:
.border-blue, .background {
border: 1px solid blue;
background: url(bg.gif);
}
.border-blue .background { ... }
ist Kind? Ich habe es versucht und das funktioniert nichtNur für den Fall, dass jemand wie ich darauf stößt und es nicht merkt, gelten die beiden oben genannten Varianten für unterschiedliche Anwendungsfälle.
Folgende:
Dies ist der Fall, wenn Sie Elementen Stile hinzufügen möchten, die entweder den blauen Rand oder die Hintergrundklasse haben, z. B.:
Alle würden einen blauen Rand und einen weißen Hintergrund erhalten.
Die akzeptierte Antwort ist jedoch anders.
Dadurch werden die Stile auf Elemente
<div>
angewendet , die beide Klassen haben. In diesem Beispiel sollten nur die Stile mit beiden Klassen angewendet werden (in Browsern, die das CSS richtig interpretieren):Stellen Sie sich das also im Grunde so vor: Die Kommatrennung gilt für Elemente mit einer Klasse ODER einer anderen Klasse und die Punkttrennung für Elemente mit einer Klasse UND einer anderen Klasse .
quelle
.blue-border.background
think of it as AND and OR
: Guter Hinweis. Ich könnte hinzufügen, dass.x .y
man sich das vorstellen kann alsy && ancestors.has(x)