首页 > 解决方案 > javafx css 声明中的多个值

问题描述

我正在阅读有关使用 css 样式的各种教程和参考资料。我希望提供一个可配置的 css 来增强根 css,但我很难理解 caspian.css 文件的一个方面。

它有如下几行:

-fx-background-color: -fx-focus-color, -fx-cell-focus-inner-border, derive(-fx-control-inner-background,-5%);

我可以理解它的派生部分,但为什么颜色有多个值。这是如何运作的?

抱歉,如果这对某些人来说很明显,但我找不到答案。

标签: cssjavafx

解决方案


ARegion可以有多个背景填充/图像(通过查看可以看出Background)。每个填充都按顺序绘制,一个在另一个之上,然后以相同的方式绘制图像。如果您查看JavaFX CSS 参考指南,您会发现您发布的只是用于声明多个填充的 CSS 语法。

这通常与为每个填充(即-fx-background-insets)和填充(即-fx-padding)设置插图相结合,这是 JavaFX 呈现“边框”的方式。基本上,顶部背景略微插入,这允许底部背景显示在区域边缘周围。我不记得我在哪里读到的,但我相信他们使用这种方法的原因是因为它比使用真正的边框便宜。

如果您想知道为什么这些值是-fx-focus-color,-fx-cell-focus-inner-border等等,JavaFX CSS 支持查找颜色。在 CSS 文件的其他地方,可能在 中.root {...},这些值被定义,然后在整个样式表中使用。这样可以更轻松地在整个 UI 中使用统一的调色板。

另外,请注意,从 JavaFX 8 开始,默认样式表是“modena.css”。


推荐阅读