簡體   English   中英

我如何使用CSS樣式表來樣式化JavaFX中的文本形狀而不給它分配樣式類?

[英]How do I stylize a Text Shape in JavaFX using a CSS style sheet without assigning it a style-class?

我有一個相當簡單的JavaFX控件,試圖用CSS樣式表進行樣式化。 我的背景設置很好,但是由於控件本身的大小可能有所不同,並且我想用控件縮放文本,因此我有幾種必要的文本形狀。

我正在嘗試使用.text{/*CSS Code*/}對CSS中的文本進行樣式化,但無法正常工作:

.text{
   -fx-fill: #818181;
   -fx-effect: innershadow( three-pass-box , rgba(0,0,0,0.7) , 6, 0.0 , 0 , 2 );   
}

在Scene Builder中打開FXML文件時,我必須先應用樣式類,然后再看到效果。

我不在乎,但我也想在懸停或單擊文本形狀時使用效果,顯然是使用訪問偽類的樣式類:hover不起作用,並且通過擴展,我將假定沒有其他偽類工作之一:

.text:hover{
    -fx-fill: #818181; 
}

這就是我剩下的:

root {
    display: block
}

.root{
    -fx-background-color: linear-gradient(
        from 0% 0% to 100% 100%, #b478ff 0%, #9400d3 100%
    );
}

我將根布局(網格窗格)樣式類設置為“ root”,並且可行(我可以看到背景漸變顏色很好)。

我喜歡CSS的想法,但似乎永遠無法使它起作用,這讓我發瘋。 我在這里做錯了什么? 要文本形狀沒有可訪問的CSS偽類? 甚至根本沒有上課? 我想念的是什么?

您已將-fx-fill設置為text和text:hover中相同的顏色。

對我來說,它起作用了,當我使用CSS時:標簽和按鈕的文本顯示了懸停效果(我將fx-fill更改為text:hover中的另一個值)。

示例代碼: http : //pastebin.com/GNDwz626

...在看到效果之前,必須先應用樣式類。

除非您使用特殊的CSS類,否則有時必須這樣做


我喜歡CSS的想法...要使文本形狀沒有可訪問的CSS偽類? ...?

您需要做的是閱讀 jfxrt.jar(位於jre \\ lib \\ ext中)中的modena.css ,並在您的jre路徑中搜索它。modena.css位於 位置


來自modena.css

這是從CSS中提取的一些信息。

 /******************************************************* * * * Text COMMON * * * ******************************************************/ .text-input { /* ... */ } .text-input:focused { /* ... */ } /******************************************************* * * * TextArea * * * ******************************************************/ .text-area { /* ... */ } .text-area > .scroll-pane { /* ... */ } .text-area > .scroll-pane > .scroll-bar:horizontal { /* ... */ } .text-area > .scroll-pane > .scroll-bar:vertical { -/* ... */ } .text-area > .scroll-pane > .corner { /* ... */ } .text-area .content { /* ... */ } .text-area:focused .content { /* ... */ } 

優美的風景

有一個名為Scenic View的軟件,您可以從fx Experience網站上獲取它。 您也可以使用該軟件查找有關控件的css類的信息。

這是因為文本是形狀。 因此其略有不同。

//將其放在您的CSS中

/* This sets the fill for the Text Shape */
Text {
    -fx-fill: white;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM