当父节点悬停在其上时,是否可以对节点的子节点应用悬停效果,而无需将鼠标悬停在每个子节点本身上才能发生悬停效果?
例如,假设我有以下节点:
- HBox --> #parent
- 标签 --> #label
- 按钮 --> #button
我希望能够在 Hbox 悬停时触发按钮和标签的悬停伪类。
最佳答案
在 JavaFX 2 中无法执行此操作(使用公共(public) 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;
}
关于JavaFX CSS : Apply hover effect to Child nodes when Parent node is hovered on,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48249936/