如何仅为一个元素保留css样式
我的应用程序中有以下CSS样式:如何仅为一个元素保留css样式,css,listview,javafx-8,Css,Listview,Javafx 8,我的应用程序中有以下CSS样式: .list-cell { -fx-background-color: null; -fx-font-size: 24px; -fx-text-fill: linear-gradient( from 0.0% 0.0% to 0.0% 50.0%, reflect, 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(1
.list-cell {
-fx-background-color: null;
-fx-font-size: 24px;
-fx-text-fill: linear-gradient( from 0.0% 0.0% to 0.0% 50.0%, reflect, 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-cell:hover {
-fx-text-fill:linear-gradient( from 0.0% 0.0% to 100.0% 100.0%, reflect, rgb(255,255,255) 0.0, rgb(255,255,77) 100.0);
}
我将其应用到我的计划中:
scene.getStylesheets().add(getClass().getResource("/com/root/tomaszm/Design.css").toExternalForm());
我只想将此样式用于一个ListView节点,而不用于任何其他节点。我有一个新的组合框继承这种风格的问题
我知道这可能是最基本的东西,但我还不熟悉CSS,只是在寻找快速修复
编辑:
应用程序类
scene.getStylesheets().add(getClass().getResource("/com/root/tomaszm/Design.css").toExternalForm());
控制器类
listView.getStyleClass().add("mainList");
您必须将样式类添加到ListView中
listView.getStyleClass().add("mylist");
你的css
#mylist .list-cell {
-fx-background-color: null;
-fx-font-size: 24px;
-fx-text-fill: linear-gradient( from 0.0% 0.0% to 0.0% 50.0%, reflect, 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);
}
#mylist .list-cell:hover {
-fx-text-fill:linear-gradient( from 0.0% 0.0% to 100.0% 100.0%, reflect, rgb(255,255,255) 0.0, rgb(255,255,77) 100.0);
}
您可以阅读文档以了解更多解释您编写css的方式,您需要将
css id
设置到您的节点,而不是控制器中的styleclass
背景
节点可以同时具有这两个属性
- styleclass(由
表示).styleclass{…}
- css id(由
表示)#id{…}
getStyleClass().add(“mainList”)
设置节点的styleClass
,并通过声明以下内容在css文件中使用:
.mainList {
...
}
要向节点声明id(以您为例),应使用:
listView.setId("mainList");
您可以像在css文件中一样使用id:
#mainlist{
...
}
styleclass
通常以一组相同类型的节点为目标,其中
css id
以特定节点为目标(但不是强制性的)
注意:不要混淆
id
和fx:id
。两者的用途不同,实现方式也不同 不知怎么的,它对我不起作用。。。它仍然无法加载样式,无法工作。。。请参见编辑。当我更改scene?的根目录时,可能与此有关!所以我发现我也可以只更改.mainList.list单元格{…}
。并使用listView.getStyleClass().add(“mylist”)代码>相同的效果,对吗?我看不出任何原因,为什么你不能;)
#mainlist{
...
}