JavaFX and CSS Styling



我是CSS的新手,想知道是否有人能帮我回答问题。

在许多CSS示例代码中,我看到了这样的部分:

.listview{
...
-fx-background-color: -fx-box-border, -fx-control-inner-background ;
...
}

所以我的问题是-fx框边界,-fx控件内部背景值从哪里来?他们似乎是在某个地方定义的同谋,但他们的价值观在哪里?

提前谢谢。

-fx-background-color等值是在默认的JavaFX(8)样式表modena.css中定义的"查找颜色"。

您可以通过检查Java运行时环境(JRE)附带的默认样式表来查找它们的值(以及许多其他内容)。

jar xvf $JAVA_HOME/jre/lib/ext/jfxrt.jar com/sun/javafx/scene/control/skin/modena/modena.css 
cat com/sun/javafx/scene/control/skin/modena/modena.css

(如果您的环境中未设置JAVA_HOME,请针对您安装的JRE位置调整上述命令)。

"查找颜色"的定义,复制自JavaFX CSS参考指南:

使用查找的颜色,可以引用在当前节点或其任何父节点上设置的任何其他颜色属性。这是一个非常强大的功能,因为它允许在场景中指定通用的调色板,然后在整个应用程序中使用。如果要更改其中一种调色板颜色,可以在场景树的任何级别进行更改,这将影响该节点及其所有子节点。查找的颜色在应用之前不会被查找,因此它们是活动的,并对可能发生的任何样式更改做出反应,例如在运行时用节点上的"样式"属性替换调色板颜色。

在下面的示例中,所有按钮的所有背景颜色都使用查找到的颜色"abc"。

.root { abc: #f00 }
.button { -fx-background-color: abc }

最新更新