【问题标题】:Set CSS styling to a specific elements in JavaFX将 CSS 样式设置为 JavaFX 中的特定元素
【发布时间】:2021-08-03 13:23:56
【问题描述】:

我正在尝试在 JavaFX 中为自己设计一个 UI,作为我学习过程的一部分。我正在尝试使用 CSS 让事情变得更简单,但我无法真正理解它的概念。

我有一个BorderPane,在top 位置有一个ToolBar,在center 位置有一个GridPane

我的问题是,如何仅将样式设置为一组特定元素。例如,我试图在我的ToolBar 中设置仅特定于Label 元素的样式。我的窗口中有一大堆Labels,但我只是想在我的ToolBar 中设置它们的样式。那可能吗?
我尝试在样式表中添加此代码:

.tool-bar label {
    -fx-font-family: Arial;
    -fx-font-size: 15pt;
}

但显然,它根本没有设置任何Labels 的样式。

提前致谢。

编辑:改写问题,因为我的意思是我的目标是一组特定的节点。感谢那些已经回答的人。

【问题讨论】:

标签: java css javafx


【解决方案1】:

来自JavaFX CSS Reference

场景图中的每个节点都有一个 id 变量,一个字符串。这是 类似于可以出现 HTML 元素的 id="..." 属性。 为节点的 id 变量提供字符串会导致样式属性 使用该 ID 查找此节点。特定 ID 的样式 可以使用样式表中的“#nodeid”选择器语法来指定。

例子:

label.setId("customlabel");

CSS 文件:

#customlabel {
    -fx-font-family: Arial;
    -fx-font-size: 15pt;
}

要对不同的节点应用相同的样式,可以使用样式类:

场景图中的每个节点都有一个 styleClass 变量,一个 列表。这类似于 class="..." 属性,可以 出现在 HTML 元素上。为节点的 styleClass 提供字符串 变量导致该样式类的样式属性应用于 这个节点。样式类的样式可以使用 样式表中的“.styleclass”选择器语法。请注意,一个节点可能 有多个样式类。

node.getStyleClass().add("custom-content");

CSS 文件:

.custom-content {
    -fx-font-family: Arial;
    -fx-font-size: 15pt;
}

【讨论】:

  • 这对我来说是新的。虽然我想看看它是否可以是一组节点。
  • 我更新了我的答案以包括样式类@SamuelAdrianKosasih
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 2011-02-05
  • 2020-05-22
相关资源
最近更新 更多