我们是否可以将现有主题及其控件覆盖为自定义字体?
问题:我可以用我的自定义字体覆盖全局字体,但我不能覆盖每个控件字体,因为所有控件都分配了自己的 Font 属性,而不是继承自全局。
有什么解决办法吗?
最佳答案
UI5 主题和 LESS
UI5 正在使用 LESS在内部以舒适的方式启用主题。 LESS 是一个扩展 CSS 功能的 CSS 预编译器。其含义和缺点是交付的 UI5 主题已经预编译,这意味着您的应用程序仅使用生成的纯 CSS。
UI5 主题工具
遗憾的是,到目前为止,它背后真正的 UI5 工具还没有向我们的开发人员公开。他们提供的唯一工具是 Theme Designer .甚至还有点播版here .使用 Theme Designer,您应该能够根据需要轻松更改样式。
破解 UI5 主题
但主题中包含的所有 ControlName.css 文件仍然是未编译的 less 文件,您可以在 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 版本很容易破坏您的样式!
关于css - SAPUI5 中的自定义字体 - 使用自定义字体覆盖整个主题及其控件字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24903697/