JavaFX CSS在CSS文件中组合样式

时间:2013-07-03 11:50:18

标签: css javafx-2

我有两个基本CSS类:

.smpb_color_gray {
    color:#cccccc;
}

.smpb_font_size_18 {
    font-size:18pt;
}

我想知道是否可以创建一个包含这两个类的类?名称为.smpb_my_combine_class且必须为color:#ccccccfontSize:18pt

我想创建一个类,然后在其他类上使用它们。

就像我想要创建:

.smpb_base_border_width{
    border-width:1;
}

然后我想为其他控件创建一个类,我想只包含这个类,但不要创建一个新类。如果我想在将来更改默认宽度,则需要它。

如果我在基础上进行了更改,那么我需要在所有类中进行更改。

6 个答案:

答案 0 :(得分:2)

关于JavaFX2,在.root元素中,您可以定义一个属性,例如-smpb-color-gray:#cccccc;,然后在另一个css类中引用它。

.root {
  -smpb-color-gray: #cccccc;
  -smpb-font-size: 18pt;
}

.smpb_my_combine_class {
  -fx-text-fill: -smpb-color-gray;
  -fx-font: -smpb-font-size;
}

我使用了-fx-text-fill因为我不确切地知道你想要着色的是什么。

这符合您的标准吗?

答案 1 :(得分:1)

试试这个

.smpb_font_size_18,.smpb_color_gray{
    color:#cccccc;
    font-size:18pt;
}

答案 2 :(得分:0)

您可以将多个类分配给一个这样的html元素 <div class="border black"></div> 但据我所知,你不能将多个班级合并在一起。

我还没有真正调查过,但我认为SASS可能会做你想做的事。

答案 3 :(得分:0)

如果你的意思是这样使用它:

.myclass {
  .testclass;
}

除非你研究LESS之类的东西,否则答案是否定的。

答案 4 :(得分:0)

是:

.smpb_font_size_18,.smpb_color_gray{
    /*whatever style for both*/
}

答案 5 :(得分:0)

基本上,你要问的是层叠样式表是什么......将元素与相同的顶级类或Ids组合在一起。您唯一需要做的就是创建.smpb_my_combine_class并定义如下值:

.smpb_my_combine_class{
    color:#cccccc;
    font-size:18pt;
}

然后定义子类以使用默认值替换顶级类值,如下所示:

.smpb_my_combine_class .smpb_color_gray{
    font-size: medium; //The default value for font-size according to W3C
}

.smpb_my_combine_class .smpb_font_size_18{
    color: black; //The default value of your Page font color?
}

因此,您的.smpb_my_combine_class - 分类元素将具有这些默认值,以及基于它的每个类。但请记住,只有当您的子类元素包含在.smpb_my_combine_class - class

的元素中时,这才有效。