我已经使用了很多html + css,但我对javafx + css完全不熟悉.所以这将是一个新手问题,但我无法在任何地方找到答案.
我有一个充满标签的大型GridPane(除了其他标签).我可以为所有这些标签设置填充,例如:
GridPane.containerLevel02 Label {
-fx-padding: 0 0 0 5;
}
Run Code Online (Sandbox Code Playgroud)
这有效.我希望一些标签更加缩进,所以我为它们创建了"leftIndent"类:
GridPane.containerLevel02 Label.leftIndent {
-fx-padding: 0 0 0 20;
}
Run Code Online (Sandbox Code Playgroud)
这也有效.
但是,我不想在那里指定三个零,因为如果我决定将一般的顶部/底部填充添加到标签,它将不会影响"leftIndent"标签.
我正在寻找的是:
GridPane.containerLevel02 Label.leftIndent {
-fx-padding-left: 20;
}
Run Code Online (Sandbox Code Playgroud)
...喜欢"正常"的CSS或......
GridPane.containerLevel02 Label.leftIndent {
-fx-padding: null null null 20;
}
Run Code Online (Sandbox Code Playgroud)
...或者任何可以让我指定左边填充的东西,使顶部,右边和底部填充不受当前任何值的影响.
那可能吗?谢谢!
由于JavaFX不提供-fx-padding-left或类似,我认为最简单的解决方法是使用变量.例如:
.root {
LABEL_PADDING_TOP: 0;
LABEL_PADDING_RIGHT: 0;
LABEL_PADDING_BOTTOM: 0;
LABEL_PADDING_LEFT: 5;
}
GridPane.containerLevel02 Label {
-fx-padding: LABEL_PADDING_TOP LABEL_PADDING_RIGHT LABEL_PADDING_BOTTOM LABEL_PADDING_LEFT;
}
GridPane.containerLevel02 Label.leftIndent {
-fx-padding: LABEL_PADDING_TOP LABEL_PADDING_RIGHT LABEL_PADDING_BOTTOM 20;
}
Run Code Online (Sandbox Code Playgroud)
它仍然要求您覆盖在某些用例中可能不需要的所有值,但至少您必须仅在一个地方指定默认值.