CSS Vererbung verhindern

Hallo,
da die Oracle JavaFX Forum Software wirklich schlecht ist, versuche ich einmal hier mein Glück.

Ich habe zwei SplitPanes in meinem Scene-Graph, wobei die 2. ein Unterelement der ersten ist. Wenn ich der “äußeren” SplitPane eine CSS-Class zuordne, erhält die “innere” immer die selben CSS Attribute. Ich möchte aber z.B. den Divider der “äußeren” rot setzen und den der “inneren” auf grün. Ich verwende aktuell folgenden CSS-Code:

    -fx-padding: 0 1 0 0;
    -fx-background-color: red;
    -fx-background-insets: 0 -3 0 -3, 0;
    -fx-border-color: red;
}

und in Java:
leftSplitpane.setId("outer-splitpane");

Für die innere Class sieht es genauso aus, mit “green” statt “red”.

Danke im voraus und Grüße, René

kurze Ergänzung … ich verwende JavaFX im JDK8

Erzeugt man dann nicht Klassen, in denen man das trennt/definiert? Bspw. .red oder .green

Hallo,

ja, ich habe eine “inner-splitpane” Klasse in CSS bei der ich den Wert auf “green” gesetzt habe.
Dennoch werden beide SplitPanes in rot angezeigt, da anscheinend im Scene-Graph die Werte der “outer-” an die “inner-Splitpane” vererbt werden (im Scene-Graph). Was mache ich nur falsch?

Gruß René

Ich bin kein CSS-Profi, selfHTML mit dem Thema CSS sollte dir weiterhelfen.

Warum wollte man denn CSS-Vererbung verhindern wollen? Das von dir beschriebene “Phänomen” ist ja grade der Sinn von CSS. Logisch, dass Äussere Elemente an innere weitervererben, sonst müsste man die inneren ja wieder selbst umgestalten und der Sinn von CSS wäre verfehlt. Das hat natürlich zur Folge, dass du innere Elemente widerum selbst umgestalten musst, wenn sie anders als die äusseren aussehen sollen. Aber um das Ganze zu vereinfachen, besteht immerhin die Möglichkeit für CSS-Klassen einen Gültigkeitsbereich für Elemente zu definieren. Mehr dazu wie bereits gesagt, auf selfHTML.