我有一个Web应用程序,为此我们有CSS.我们正在将UI移植到JavaFX,并打算将其样式与Web应用程序上的样式完全相同.我尝试加载用于Web项目的CSS,但样式没有得到反映.经过一番搜索,我发现Oracle已经创建了一个名为JavaFX CSS的东西,它类似于CSS但不完全是CSS.
我想知道的是:有一些简单的方法将我的(Web)CSS转换为JavaFX CSS吗?
一些简单的方法将我的(Web)CSS转换为JavaFx CSS
此任务没有自动转换器.我建议你拿一点你的CSS并尝试手动转换它.
您可以使用分析工具(如SceneBuilder中的CSS Analyzer)来帮助完成此任务.
执行转换时请参阅JavaFX CSS Reference.
如果您在转换JavaFX和HTML css文件之间的元素或属性时遇到特定问题,请发布有关这些转换困难的新问题.
我们正在将UI移植到JavaFx,并打算将其样式设置为与Web应用程序上的样式完全相同.
如果你有很多CSS,那将会有点棘手.JavaFX CSS与基于Web的HTML css不同.JavaFX CSS文件与HTML CSS共享一种通用的语法格式,但JavaFX中的所有 css属性都与HTML CSS 中的不同.
HTML CSS可以指定由HTML呈现引擎呈现的布局属性.JavaFX布局和呈现引擎与HTML的工作方式不同,因此基于HTML CSS的布局说明符在任何JavaFX CSS,JavaFX代码或FXML定义的布局管理器中都不具有直接等价物.
不过,JavaFX CSS非常灵活.很多东西都类似于HTML css(比如区域背景和颜色说明符),因此可以在合理的时间内以可接受的准确度将HTML CSS的要点转换为JavaFX CSS,前提是您熟悉两种CSS形式.只是不要指望您的JavaFX应用程序和Web应用程序的外观或行为完全相同.
Oracle已经创建了一些调用JavaFX CSS的东西,它类似于CSS但不完全是CSS.
JavaFX CSS在语法和文件格式方面实际上只是CSS.JavaFX中使用的CSS遵循W3C CSS的所有基本语法和数据类型.
W3C CSS就是你在问题中所说的纯CSS或(web)CSS.W3C CSS有许多扩展和建议的扩展,其中许多扩展甚至在主流浏览器中都得不到很好的支持.
考虑将WebView用于应用程序的某些部分
您可能希望将某些应用程序保留在HTML中,并将应用程序的其他部分移植到JavaFX控件中,而不是将整个应用程序从HTML移植到JavaFX.
JavaFX包含一个WebView组件,可以轻松嵌入JavaFX应用程序中.WebView可以准确地呈现HTML,它可以解析和理解W3C CSS.您可以使用一些现有的CSS和HTML来设置和呈现JavaFX应用程序的一部分.
由于JavaFX CSS和W3C CSS共享一种通用文件格式,您甚至可以将JavaFX CSS样式和W3C CSS样式放在同一个CSS文件中,而JavaFX和WebView运行时将足够聪明,可以在呈现其特定组件时应用适当的样式.
也可以看看
JavaFX CSS参考指南
学习CSS(JavaFx风格)