JavaFX CSS:当父节点悬停时,将悬停效果应用于子节点
JavaFX CSS : Apply hover effect to Child nodes when Parent node is hovered on
是否可以在父节点上悬停时应用悬停效果到子节点,无需悬停在每个子节点上即可产生悬停效果?
例如,假设我有以下节点:
- HBox --> #parent
- 标签 --> #label
- 按钮 --> #button
我希望能够在悬停 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;
}
是否可以在父节点上悬停时应用悬停效果到子节点,无需悬停在每个子节点上即可产生悬停效果?
例如,假设我有以下节点:
- HBox --> #parent
- 标签 --> #label
- 按钮 --> #button
我希望能够在悬停 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;
}