JavaFX CSS:当父节点悬停时,将悬停效果应用于子节点

JavaFX CSS : Apply hover effect to Child nodes when Parent node is hovered on

是否可以在父节点上悬停时应用悬停效果到子节点,无需悬停在每个子节点上即可产生悬停效果?

例如,假设我有以下节点:

我希望能够在悬停 Hbox 时触发按钮和标签的悬停伪 class。

在 JavaFX 2(使用 public API)中无法做到这一点,因为它不提供对伪classes 的访问。即使使用 JavaFX 8+,我也不建议这样做,因为这会干扰由 JavaFX 管理的伪class。

但是,您可以根据 CSS 样式表中父项的悬停状态应用 CSS 规则,使它们看起来与悬停节点相同。以下 CSS 假定您将 hover-container 样式 class 添加到父级:

/* a button in a hovered container should look the same as a hovered button */
.hover-container:hover .button {
    -fx-color: -fx-hover-base;
}

/* override above rule for armed buttons */
.hover-container:hover .button:armed {
    -fx-color: -fx-pressed-base;
}