CSS

■ 关于JavaFX CSS

JavaFX和HTML一样,可以应用CSS样式
语法和用法基本上是一致的

■ CSS的层级分类

按照CSS的作用域,有以下几个层级的CSS样式:

  • JavaFX层级的CSS样式
  • Scene层级的CSS样式
  • 母控件层级的CSS样式
  • 控件的style属性

■ JavaFX层级的CSS样式

JavaFX层级的CSS样式是JavaFX默认的CSS样式表,是JavaFX的全局CSS样式,作用于整个JavaFX组件
如果一个组件没有被具体指定CSS样式,则JavaFX层级的CSS样式会作用于该组件
JavaFX层级的CSS样式表也叫Modena,位于JavaFX JAR包里

■ Scene层级的CSS样式

可以为Scene对象设置CSS样式
Scene层级的CSS样式会作用于所有加入到该Scene下的组件
Scene层级的CSS样式表会覆盖JavaFX层级的CSS样式

scene.getStylesheets().add("style1/button-styles.css");

注:
JavaFX在寻找css文件时,是基于classpath找的
即css文件的路径必须要位于于classpath中的某一个路径下

■ 母控件层级的CSS样式

可以为包含了子控件的母控件指定CSS样式,达到对其子控件指定CSS样式的目的,即为所有Parent类的子类控件指定CSS样式
Parent类是所有母控件的基类
母控件层级的CSS样式会覆盖JavaFX层级和Scene层级的CSS样式
比如,layout控件就是Parent类的子类,如果为其指定CSS样式,则该layout控件下的子控件都会被指定CSS样式

Button button1 = new Button("Button 1");
Button button2 = new Button("Button 2");

VBox vbox = new VBox(button1, button2);
vbox.getStylesheets().add("style1/button-styles.css");

■ 控件样式属性

可以为JavaFX某一单独控件指定CSS样式
通过 setStyle() 方法为该组件的 style 属性指定CSS样式
该控件的style属性会覆盖JavaFX层级,Scene层级和母控件层级的CSS样式

Button button = new Button("Button 2");
button.setStyle("-fx-background-color: #0000ff");

String styles =
        "-fx-background-color: #0000ff;" +
        "-fx-border-color: #ff0000;" ;

Button button = new Button("Button 2");
button.setStyle(styles);

■ JavaFX自有CSS属性

JavaFX有属于自己的CSS属性
这些CSS属性的命名跟html的CSS属性有一些不同,但大体上是相同的
并不是所有的JavaFX自有CSS属性都能够作用于所有JavaFX组件,但大部分都是可以的
比如 -fx-background-color , 表示为一个JavaFX组件设置背景色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值