JavaFX和CSS样式

时间:2016-05-27 21:25:51

标签: css javafx

我对CSS很陌生,想知道是否有人可以为我回答问题。

在很多CSS示例代码中,我看到如下部分:

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

所以我的问题是-fx-box-border,-fx-control-inner-background值来自哪里?它们似乎是某些地方的定义,但它们的价值在哪里以及它们是什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

-fx-background-color等值是default JavaFX (8) stylesheetmodena.css中定义的“查找颜色”。

通过检查Java Runtime Environment(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 }