![](/img/trans.png)
[英]JMS - How do message selectors work with multiple queue and topic consumers?
[英]How do Attribute Selectors work in JavaFX?
在ĴAVAFXÇSS - [R eference指南,它清楚地表明
JavaFX 級聯樣式表 (CSS) 基於 W3C CSS 版本 2.1 [1],並在版本 3 [2] 的當前工作中添加了一些內容。
在 JCRG 中,他們經常直接鏈接到 W3C 的 CSS 參考指南,當他們談論選擇器時就是這種情況。
在 JCRG 中,他們提到了類型選擇器、類選擇器和ID 選擇器——他們甚至說它們不支持結構偽類——但沒有提到屬性選擇器。
如果 JavaFX 支持它們,它們是如何工作的? JavaFX 認為什么是屬性? 我認為 CSS 引擎可能會查看 FXML 中的屬性,但並非所有場景圖都源自 FXML。
FXML 屬性只是在相應的對象上設置屬性。 本身沒有“屬性選擇器”,但是當且僅當設置了某些屬性時,某些節點才會設置偽類(這些記錄在您鏈接的參考指南中)。 所以底線是沒有直接等價的屬性選擇器,除非它們直接映射到偽類。
請注意,當然,如果您需要支持基於屬性的 CSS,您始終可以觀察屬性並設置/取消設置自定義偽類。 所以總是可以將屬性選擇器重鑄為偽類。
因此,例如,假設您想為具有"alignment=CENTER_RIGHT"
屬性的文本字段設置不同的樣式。 你可以做
TextField textField = new TextField();
PseudoClass rightAligned = PseudoClass.getPseudoClass("right-aligned");
textField.alignmentProperty().addListener((obs, oldAlignment, newAlignment) ->
textField.pseudoClassStateChanged(rightAligned, newAlignment == Pos.CENTER_RIGHT));
然后在你的 CSS 中你只需要
.text-field:right-aligned {
/* style rules */
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.