CSS nicht überschreiben geerbte Werte
Ich habe ein Html, das enthält etwas wie:
(Mehrere divs innerhalb div-A).
<div class="a">
<div class="b"></div>
</div>
Mein css sieht so aus:
.a div {
border: solid;
border-width: thin;
}
.b {
border: none;
border-width: 0px;
border-collapse: collapse;
}
Aus irgendeinem Grund der b-Werte nicht überschreiben.
wenn ich allerdings nur schreiben, anstatt "ein .div" ich werde nicht das Verhalten erwartet für die anderen divs ein.
Nur so, ich habe diese Arbeit ist mit "wichtig!" (ie "border: none!wichtige"; -) aber das scheint weniger als elegant.
würde gerne alle Ideen, was dort Los ist..
Ehud.
Du musst angemeldet sein, um einen Kommentar abzugeben.
.a div
hat eine höhere Spezifität als.b
.Wenn Sie möchten, dass die css für .b zu überschreiben .ein, geben es eine höhere Spezifität immer noch, zum Beispiel
.a div.b
.(Oder können Sie
!important
, ja, aber das ist nicht hier empfohlen.).b div
soll nicht funktionieren, da du keine divs innerhalb Ihrer .b, zumindest nicht in deinem Beispiel. Trotzdem, die Spezifität ist ein sehr wichtiges Konzept innerhalb der CSS, ich würde vorschlagen, Sie Lesen es auf.Ihre Selektoren falsch sind.
Statt
Schreiben
(wählen Sie alle div mit der Klasse "a")
Statt
(die tatsächlich versuchen, den Stil alle b Elemente)
Verwenden
(die sagt wählen Sie etwas, das definiert ist durch die Klasse "b" )
BEARBEITEN (Antwort auf Antwort)
Auswählen, um alle divs in ein div mit der Klasse "a", verwenden Sie den folgenden Selektor:-
Spezifität score wird berechnet, indem die CSS-Compiler, die höchste Punktzahl unter Erklärung bekommt, um den Inhalt zu ändern.
Partitur ist in der Regel errechnet sich nach folgender Reihenfolge:
($) -> 1, falls die jeweilige Art von Spezifität besteht in code
($) -> 0, wenn die jeweilige Art der Spezifität nicht vorhanden ist in der code
So, hier
für
.a div
Punktzahl 0012für
.b
Punktzahl 0011Klar erste gewinnt es geht also um den Inhalt zu ändern, obwohl
.b
versucht zu überschreiben.a div
(ODER)
Sie können
!important
in der Erklärung abzuschließen, dass die Erklärung