如何保持CSS样式只有一个元素

如何保持CSS样式只有一个元素

本文介绍了如何保持CSS样式只有一个元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的CSS样式在我的应用程序:

  .LIST细胞{
    -fx背景色:空;
    -fx-字体大小:24px的;
    -fx文本填写:线性梯度(0.0%0.0%0.0%50.0%,反映,RGBA(255,0,0,0.28)0.0,RGBA(102,243,255,0.58)50.0,RGBA(179,179,179,0.45) 70.0,RGBA(179,179,179,0.45)100.0);
}
.LIST细胞:悬停{
    -fx文本填写:线性梯度(0.0%0.0%至100.0%100.0%,反映,RGB(255,255,255)0.0,RGB(255,255,77)100.0);
}

和我把它应用到我的程序:

<$p$p><$c$c>scene.getStylesheets().add(getClass().getResource(\"/com/root/tomaszm/Design.css\").toExternalForm());

和我想用这种风格只为一个节点的ListView没有任何其他。我有一个新的ComboBox继承了这种风格的问题。

我知道那可能是基本的东西但是我还不熟悉CSS,只是在寻找快速解决...

编辑:

  @CHARSETUTF-8;#mainList .LIST细胞{
    -fx背景色:空;
    -fx-字体大小:24px的;
    -fx文本填写:线性梯度(0.0%0.0%0.0%50.0%,反映,RGBA(255,0,0,0.28)0.0,RGBA(102,243,255,0.58)50.0,RGBA(179,179,179,0.45) 70.0,RGBA(179,179,179,0.45)100.0);
}
#mainList .LIST细胞:悬停{
    -fx文本填写:线性梯度(0.0%0.0%至100.0%100.0%,反映,RGB(255,255,255)0.0,RGB(255,255,77)100.0);
}

应用程序类

<$p$p><$c$c>scene.getStylesheets().add(getClass().getResource(\"/com/root/tomaszm/Design.css\").toExternalForm());

控制器类

  listView.getStyleClass()加(mainList);


解决方案

你写你的CSS的方式,你需要在 CSS ID 设置为您的节点,而不是一个的styleClass 在您的控制器。

背景

一个节点可以同时拥有


  • 的styleClass的(重由 .styleclass psented $ P $ {...}

  • CSS ID的(重由 #ID psented $ P $ {...}

从JavaDoc中:

Difference

getStyleClass().add("mainList") sets the styleClass of a node and is used in the css file by declaring :

.mainList {
   ...
}

For declaring an id to a node (lets taking your example), you should use :

listView.setId("mainList");

You use the id as you have already used in the css file:

#mainlist{
    ...
}

Note : Do not confuse id and fx:id. Both are used for differently and have different implementations. For more information, click me!

这篇关于如何保持CSS样式只有一个元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-28 00:26