JavaFX CSS:如何从其他CSS设置继承背景颜色?

时间:2016-05-23 07:57:17

标签: java css javafx background-color

我有一个CSS文件来设置JavaFX TabPaneTab中的样式。

有没有办法设置TabPane的背景颜色并继承Tab背景颜色?

如果我设置了tab-content-area背景颜色,我是否可以选择此选项卡而无需再次明确指定颜色?

.tab-content-area 
{
  -fx-background-color: #d9d9d9; /* I want to apply this color to tab background */ 
}

.tab:selected 
{
  -fx-background-color : -fx-something; <?? what do i put here??>
  -fx-background-insets: 0, 1 1 0 1;
  -fx-background-radius: 5 5 0 0, 4 4 0 0;
}

2 个答案:

答案 0 :(得分:4)

您可以设置Tab transparentinherit的背景:

.tab-content-area {
   -fx-background-color: #d9d9d9; /* I want to apply this color to tab background */ 
}

.tab:selected {
  -fx-background-color : transparent; /* Or: -fx-background-color : inherit;*/
  -fx-background-insets: 0, 1 1 0 1;
  -fx-background-radius: 5 5 0 0, 4 4 0 0;
}

您可以查看TabPane here

的CSS结构

要了解有关JavaFX中命名颜色的更多信息,请参阅this section

可以找到inherit的文档here

答案 1 :(得分:3)

我做了一些挖掘,发现问题的答案Declaring Variable In JavaFX CSS File允许我创建一个足以满足我需要的解决方案。

我的css现在看起来像这样:

* {
    -fx-my-global-color:#d9d9d9;
  }
.tab-content-area 
  {
  -fx-background-color: -fx-my-global-color;  
  }

.tab:selected 
 {
  -fx-background-color : -fx-my-global-color;
  -fx-background-insets: 0, 1 1 0 1;
  -fx-background-radius: 5 5 0 0, 4 4 0 0;
 }