我们是否可以将现有主题及其控件覆盖为自定义字体?
问题:我可以使用自定义字体覆盖全局字体,但我无法覆盖每个控件字体,因为所有控件都分配了自己的Font属性,而不是继承自全球。
任何解决方案?
答案 0 :(得分:5)
UI5主题和少数
UI5在内部使用LESS以舒适的方式启用主题。 LESS是一个扩展CSS功能的CSS预编译器。其含义和缺点是,已经预编译了已交付的UI5主题,这意味着您的应用程序仅使用生成的纯CSS。
用于主题的UI5工具
不幸的是,到目前为止,它背后真正的UI5工具尚未向我们的开发人员公开。他们提供的唯一工具是Theme Designer。甚至还有一个按需版本here。使用Theme Designer,您应该能够根据需要轻松更改样式。
黑客UI5主题
但主题中包含的所有ControlName.css文件仍然是未编译的较少文件,您可以在library.less文件中找到UI5正在使用的所有LESS变量。因此,通过一些黑客攻击,您应该能够将这些LESS文件重新编译为在运行时使用的新library.css文件。将库的所有css文件与library.less组合并编译为单个文件 - library.css
因此,如果您需要更多详细信息并了解幕后发生的情况,请检查library.less文件
例如http://[host][:port]/[path_to_my_application]/resources/sap/m/themes/sap_bluecrystal/library.less
你会在那里找到所有的UI5 LESS变量。对您来说最感兴趣的可能是@sapUiFontFamily
。
无论如何我不建议在这里进行大量更改,因为使用新的UI5版本可以轻松破解样式!
答案 1 :(得分:0)
您是否使用UI Theme Designer 为自定义主题生成CSS文件?如果没有,你应该试一试。它使调整变得非常容易。
要自定义几个或所有字体系列,只需选择设计器右侧的“专家”设置选项卡,然后过滤“FontFamily”。然后它将列出所有相关属性。