我已经使用了很多html + css,但我对javafx + css完全不熟悉。所以这将是一个新手问题,但我无法在任何地方找到答案。
我有一个大型的GridPane标签(除了其他标签)。我可以为所有这些标签设置填充,如:
GridPane.containerLevel02 Label {
-fx-padding: 0 0 0 5;
}
这很有效。我希望某些标签更加缩进所以我创建了" leftIndent"为他们上课:
GridPane.containerLevel02 Label.leftIndent {
-fx-padding: 0 0 0 20;
}
这也有效。
但是,我不想在那里指定三个零,因为如果我决定一般将标签添加到标签的顶部/底部,它不会影响" leftindent上"标签
我正在寻找的是:
GridPane.containerLevel02 Label.leftIndent {
-fx-padding-left: 20;
}
...喜欢"正常" CSS或......
GridPane.containerLevel02 Label.leftIndent {
-fx-padding: null null null 20;
}
...或任何可以让我指定左侧填充,使顶部,右侧和底部填充不受任何当前值的影响。
这可能吗?的谢谢!
答案 0 :(得分:8)
由于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;
}
它仍然要求您覆盖在某些用例中可能不需要的所有值,但至少您必须在一个地方指定默认值。