JavaFx - 在文本和制表符 header 区域边缘之间增加 space

JavaFx - increase space between text and tab header area edge

我不明白我应该用什么元素来完成这个任务。我试过了

.tab-header-area .tab{
    -fx-background-color:red;
    -fx-padding:30px;
}

编辑 1
这就是我得到的

但我在大红色矩形内有相同的选项卡 header。如何增加标签 header 区域的文本和边缘之间的距离?换句话说 - 我怎样才能使标签 header 使用相同的字体大小变大?

编辑 2
当我这样做时

.tab-header-area .tab .label{
    -fx-padding:5px 30px 5px 0;
}
.tab-header-area .tab {
    -fx-background-color: red ;
}

我得到:

但我需要(抱歉,这是 gimp,不是 photoshop)

如果你想在选项卡(而不是标签)周围加一个边框,你必须使用这个:

.tab-pane > .tab-header-area > .headers-region > .tab {
    -fx-background-color: red;
    -fx-padding: 20px;
    -fx-border-color: black;
    -fx-border-width: 1px;
}

如果你想操纵 tab-container(标签所在的位置)本身,你需要这个:

.tab-pane > .tab-header-area > .headers-region > .tab  > .tab-container{    
    -fx-border-color: black;
    -fx-border-width: 1px;
}
.tab-pane > .tab-header-area > .headers-region > .tab {
    -fx-padding: 20px;
    -fx-background-color: red;
}

更新

所选选项卡的默认设置是:

.tab-pane:focused > .tab-header-area > .headers-region > .tab:selected .focus-indicator {
    -fx-border-width: 1, 1;
    -fx-border-color: -fx-focus-color, -fx-faint-focus-color;
    -fx-border-insets: -4 -4 -6 -5, -2 -2 -5 -3;
    -fx-border-radius: 2, 1; /* looks sharper if outer border has a tighter radius (2 instead of 3) */
}

事情是这样的:

.tab-pane > .tab-header-area > .headers-region > .tab {    
    -fx-padding: 20px;
    -fx-background-color: red;
}

.tab-pane > .tab-header-area > .headers-region > .tab:selected {    
    -fx-padding: 20px;
    -fx-background-color: red;
    -fx-border-width: 1px;
    -fx-border-color: black;
}

.tab-pane > .tab-header-area > .headers-region >.tab:selected .focus-indicator{
    -fx-border-width: 0px;  
}

查看 modena.css(默认 JavaFX 样式表)文件以获取有关更改内容的信息。

字体大小不会动态变化,您必须在选项卡的 size/width/height 属性 上使用监听器来处理字体大小(与字体大小有关)。

还有很多伪标签,例如 .tab:selected .tab:top 等。因此,如果您只希望在新设计中使用默认行为,请注意此类事情。

最后看看 css 选择器,您错过了降序选择器 ('>'):http://www.w3schools.com/cssref/sel_element_gt.asp

不太清楚你在找什么...也许

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.stage.Stage;

public class TabPaneStyleTest extends Application {

    @Override
    public void start(Stage primaryStage) {
        TabPane tabPane = new TabPane();
        Tab tab1 = new Tab();
        tab1.setGraphic(new Label("tab 1"));
        Tab tab2 = new Tab();
        tab2.setGraphic(new Label("tab 2"));
        tabPane.getTabs().addAll(tab1, tab2);
        Scene scene = new Scene(tabPane);
        scene.getStylesheets().add("tab-pane-big-tabs.css");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

使用 css 文件

.tab-header-area .tab .label{
    -fx-padding:5px 30px 5px 0;
}
.tab-header-area .tab {
    -fx-background-color: red ;
}