-fx-background-radius似乎无法正常使用四个值

时间:2018-01-08 15:50:49

标签: java css javafx

我正在使用JavaFX并且正在搞乱使用background-radius属性,当我偶然发现了什么似乎是一个bug。根据:https://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html oracle's description 应该支持修改一个圆角而不管其余角。但是当我按照以下方式编写我的CSS时:

.top-rounded-box {
    -fx-background-radius: 16, 16, 0, 0;
}

我的期望是什么: what I expected

实际结果: not what I expected

(忽略背景大小,paint.exe中的快速裁剪)

所以我想知道我做错了什么,或者这只是一个错误。

2 个答案:

答案 0 :(得分:2)

在您发布的文档中,逗号分隔值定义多个背景的背景半径。因此,您的CSS代码将第一个背景的半径设置为16px(在所有四个边上),将第二个背景的半径设置为16px,将第三个和第四个背景的半径设置为0px。由于您似乎只有一个背景,因此只能看到第一个值的结果。

要为不同的角设置不同的半径,值应该以空格分隔,而不是以逗号分隔:

Margin

您可以通过逗号分隔不同的以空格分隔的值来为不同的角落设置多个背景和不同的半径,例如: .top-rounded-box { -fx-background-radius: 16 16 0 0; } 等等。

答案 1 :(得分:0)

这一定是我最大的焦虑之一:facepalm:

只需删除这样的逗号:

.top-rounded-box {
    -fx-background-radius: 16 16 0 0;
}

我想念了oracle文档中的“逗号分隔”部分。