gpt4 book ai didi

css - JavaFX 子类伪类

转载 作者:太空宇宙 更新时间:2023-11-04 08:15:03 26 4
gpt4 key购买 nike

我想在一个 CSS 中制作两种不同样式的按钮。因此,在创建第二个按钮时,我使用以下方法为其添加了类:

close.getStyleClass().add("close-button");

所以现在我可以通过以下方式在 css 中引用此按钮:

.button.close-button

但现在我不知道如何在使用 .close-button 类时引用按钮的伪类。

我尝试通过

访问它
.button.close-button:selected

.button:selected.close-button

这些似乎都不起作用。有什么办法吗?或者我是否必须为 .close-button 类创建自己的伪类,并在代码中的 btton 监听器中添加和删除它们?

我正在使用以下方法创建按钮:

Button close = new Button("X");
close.getStyleClass().add("close-button");
close.setOnAction((event) -> {
....
});

然后我将它添加到布局中: HBox hbox = new HBox(rbSelect, label, pane, close);

我的 CSS 看起来像:

.button {
...
}

.button.close-button {
-fx-background-color: #E81123;
}

.button:selected.close-button {
-fx-background-color: greenyellow;
}

按钮看起来像这样: Button not clicked

当我点击它时: enter image description here

当我希望按钮将颜色变为绿黄色时,似乎什么也没发生

最佳答案

我不是 100% 确定这是必要的,但按照惯例,伪类选择器添加在类选择器之后:

.button.close-button:selected {
-fx-background-color: greenyellow;
}

然而,Button 没有selected 伪类。它适用于 CheckBoxToggleButton,但不适用于常规 Button。可用的伪类是 :pressed:hover, see css reference .

假设您使用的是 JavaFX 8,您当然可以自己添加伪类:

PseudoClass selected = PseudoClass.getPseudoClass("selected");

close.setOnAction((event) -> {
....
close.pseudoClassStateChanged(selected, true);
});

关于css - JavaFX 子类伪类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45976138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com