是否可以在父节点悬停时应用节点子节点的悬停效果,而不必将悬停在每个子节点本身上以使其悬停效果发生?
例如,假设我有以下节点:
- HBox --> #parent
- 标签 --> #标签
- 按钮 --> #button
我希望能够在 Hbox 悬停时触发按钮和标签的悬停伪类。
是否可以在父节点悬停时应用节点子节点的悬停效果,而不必将悬停在每个子节点本身上以使其悬停效果发生?
例如,假设我有以下节点:
我希望能够在 Hbox 悬停时触发按钮和标签的悬停伪类。
在 JavaFX 2(使用公共 API)中没有办法做到这一点,因为它不提供对伪类的访问。即使使用 JavaFX 8+,我也不建议这样做,因为这会干扰由 JavaFX 管理的伪类。
但是,您可以根据 CSS 样式表中父级的悬停状态应用 CSS 规则,以使它们看起来与悬停节点相同。以下 CSS 假设您将hover-container
样式类添加到父级:
/* 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;
}