【问题标题】:JavaFX and CSS StylingJavaFX 和 CSS 样式
【发布时间】:2016-05-28 06:01:25
【问题描述】:

我是 CSS 新手,想知道是否有人可以为我回答问题。

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

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

所以我的问题是 -fx-box-border、-fx-control-inner-background 值从何而来?它们似乎是在某处定义的常量,但它们的值在哪里以及是什么?

提前致谢。

【问题讨论】:

标签: css javafx


【解决方案1】:

-fx-background-color 等值是在default JavaFX (8) stylesheetmodena.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 }

【讨论】:

    猜你喜欢
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2016-04-18
    • 2017-09-11
    • 1970-01-01
    • 2016-02-29
    相关资源
    最近更新 更多