我一直在嘗試創建多個自定義屬性以在我的 CSS 檔案中使用,在搜索后我發現它們應該以雙破折號為前綴,并且通常位于 內部:root
,如下所示:
:root {
--server-primary: #c38c00;
--server-secondary: #9d7100;
}
但是這樣做會立即給我一個錯誤:javafx.css.CssParser parse WARNING: CSS Error parsing file:/[redacted]/ColorPalette.css: Expected RBRACE at [3,4]
.
我已經嘗試以我能想象到的各種方式對此進行修改,但我發現的唯一解決方案是放棄使用這些雙破折號變數來代替以下內容:
.root {
-server-primary: #c38c00;
-server-secondary: #9d7100;
}
我想使用第一個帶有雙破折號的原因是能夠參考這些 using var(--variable-name-here)
,這具有在我的 IDE 中實際顯示顏色的額外好處,而僅呼叫-variable-name-here
不會顯示使用了哪種顏色:
uj5u.com熱心網友回復:
使用受支持的 JavaFX CSS 構造
我認為JavaFX CSS 不支持:
invar
表示法(老實說,我什至不知道它是什么)。
請參閱 JavaFX CSS 參考:
- https://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html。
JavaFX 的可能等價物是:
- 命名顏色、查找顏色和顏色函式
命名顏色
<named-color>
CSS 支持一堆命名的常量顏色。命名顏色可以只用它們不帶引號的名稱來指定,例如:
.button { -fx-background-color: red; }
查找顏色
<looked-up-color>
通過查找顏色,您可以參考在當前節點或其任何父節點上設定的任何其他顏色屬性。這是一個非常強大的功能,因為它允許在場景中指定通用調色板,然后在整個應用程式中使用。如果您想更改其中一種調色板顏色,您可以在場景樹中的任何級別執行此操作,它將影響該節點及其所有后代。查找到的顏色在應用之前不會查找,因此它們是實時的,并對可能發生的任何樣式更改做出反應,例如在運行時用節點上的“樣式”屬性替換調色板顏色。
在以下示例中,所有按鈕的所有背景顏色都使用查找顏色“ABC”。
.root { abc: #f00 } .button { -fx-background-color: abc }
顏色函式
<color-function>
JavaFX 支持一些顏色計算功能。這些在應用顏色樣式時從輸入顏色計算新顏色。這使得可以使用單一基色指定顏色主題,并根據該基色計算變體顏色。有兩個顏色函式:
derive()
和ladder()
。
<derive> | <ladder>
派生
derive( <color> , <number>% )
派生函式采用一種顏色并計算該顏色的更亮或更暗版本。第二個引數是亮度偏移,表示派生顏色應該更亮或暗多少。正百分比表示顏色較亮,負百分比表示顏色較深。-100% 表示完全黑色,0% 表示亮度沒有變化,100% 表示完全白色。
梯子
ladder(<color> , <color-stop> [, <color-stop>] )
梯形函式在顏色之間進行插值。效果就像是使用提供的色標創建漸變,然后使用提供的亮度
<color>
來索引該漸變中的顏色值。在 0% 亮度下,使用漸變 0.0 端的顏色;在 100% 亮度下,使用漸變 1.0 端的顏色;在 50% 的亮度下,使用 0.5 的顏色,即漸變的中間點。請注意,實際上沒有渲染漸變。這只是一個產生單一顏色的插值函式。
我建議您改用 JavaFX 的這些受支持和記錄的功能。
在您的 JavaFX 安裝包中可以找到它們的 modena.css 檔案中的許多使用示例(在 Idea 中搜索modena.css
專案庫中的檔案)。
關于 IDE 支持(特別是 IntelliJ Idea)
關于在 IDE 中顯示從 CSS 決議的顏色的支持,當然會因 IDE 而異。
對于我認為您正在使用的 IntelliJ Idea,我認為支持因使用的版本而異。我認為免費的社區版可能對 CSS 檔案的 CSS 決議和顏色顯示的支持有限或不支持。付費(稱為 Ultimate)版本確實支持 CSS 決議和 CSS 檔案的顏色顯示。
從 2022.1 Ultimate Edition 開始,對于 JavaFX CSS,它將準確顯示命名顏色的直接分配以及 RGB 和 HSB 定義的顏色以及一些 JavaFX 顏色派生函式。
它不會顯示通過 JavaFX 查找顏色或某些 JavaFX 顏色派生函式分配的顏色。只要不向上查找,它就會以漸變方式顯示停靠點,但不會顯示漸變本身。 可以提出對 IDE的增強請求,以便IDE 添加對查找和派生顏色的顏色顯示支持以及對顯示漸變的額外支持。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/469083.html
標籤:css 视觉工作室代码 智能理念 javafx ide
上一篇:插件“AspectJweaver”無法初始化“java.lang.NoClassDefFoundError:com/intellij/openapi/compiler/ClassInstrumenti