Frage 1:
Ist statt a:hover
auch
a.link:hover
erlaubt?
Ja, auch a:hover.link
wäre kein Problem
Frage 2: Gilt das dann für alle Pseudoklassen? (before..)
ja, z.B. a:before:hover
Prinzipiell:
Um vorherige CSS Eigenschaften für "a" zu überschreiben, muss ich ja "a" als Selektor nutzen.
Nein, musst du nicht - du musst nur einen Selektor mit derselben oder höheren Spezifität verwenden.
<a class="foo" href="#">bar</a>
a {
color: red;
}
.foo {
color: blue;
}
Ergibt blau, weil der Klassen-Selektor eine höhere Spezifität besitzt bzw. später folgt.
.foo {
color: red;
}
a {
color: blue;
}
Ergibt rot, weil .foo eine höhere Spezifität besitzt.
a.foo {
color: red;
}
a {
color: blue;
}
auch das hier ergibt rot, weil a.foo gewichtiger ist als a
a.foo {
color: red;
}
a.foo {
color: blue;
}
hier hätten wir blau, weil bei derselben Spezfifität der zuletzt notierte Selektor gilt