Xen*_*dar 3 css java combobox javafx
我正在使用JavaFX + FXML构建一个小应用程序,我正在尝试实现一些简单的CSS以具有特定的样式.
我有一个Combobox元素的问题.确实,默认情况下它的颜色为灰色:
我希望它具有白色(或透明),并保持边框,以匹配与文本字段相同的样式.所以我尝试将背景颜色设置为透明但有副作用:边框也变得透明!
这是我添加的CSS:
.root {
-fx-font-size: 11pt;
-fx-font-family: "Verdana";
-fx-background: #FFFFFF;
}
.normal-label {
-fx-text-fill: #005EB8;
}
.normal-text-field {
-fx-text-fill: #333333;
}
.combo-box {
-fx-background-color: transparent;
}
Run Code Online (Sandbox Code Playgroud)
我根本不习惯CSS写作,所以也许我完全错过了一些东西.是不是组合框没有定义边界?所以我必须覆盖边框并找出文本字段的边框是什么?
ComboBox 继承了它的CSS样式的ComboBoxBase.
ComboBox控件具有ComboBoxBase的所有属性和伪类.
默认的CSS样式类ComboBoxBase定义为:
.combo-box-base {
-fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
-fx-background-insets: 0 0 -1 0, 0, 1, 2;
-fx-background-radius: 3px, 3px, 2px, 1px;
-fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
-fx-text-fill: -fx-text-base-color;
-fx-alignment: CENTER;
-fx-content-display: LEFT;
}
Run Code Online (Sandbox Code Playgroud)
您可以覆盖此样式类,如:
.combo-box-base {
-fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, white;
-fx-background-insets: 0 0 -1 0, 0, 1, 2;
-fx-background-radius: 3px, 3px, 2px, 1px;
}
Run Code Online (Sandbox Code Playgroud)
这个样式类只是将内部部分设置为白色,边框实际上是不变的(删除最后两个属性然后你会得到一个纯白色的无边框ComboBox).
注意:
如果仅使用es,则覆盖.combo-box-base或.combo-box样式类是等效的ComboBox.
回答使用.combo-box-basestyle-class而不是另一个的原因是还有其他控件继承了.combo-box-base样式类,比如ColorPicker和DatePicker.覆盖.combo-box-base所有这些控件共享相同样式的产量,从而产生更加统一的设计.
| 归档时间: |
|
| 查看次数: |
10484 次 |
| 最近记录: |