【问题标题】:How can I make a custom dojo widget themeable?如何使自定义 dojo 小部件主题化?
【发布时间】:2013-03-17 19:23:35
【问题描述】:

在 dojo 1.8 中,我正在创建一些自定义应用程序特定的小部件,并且我希望它们与页面当前主题的样式相匹配。不幸的是,由于我的小部件不是由 Dijit 小部件组成的,因此我无法弄清楚如何实现这一点。

我希望能够根据variables.less 变量创建我的小部件样式;但是,由于我不知道在构建时要使用哪个主题,所以我不知道要使用哪个variables.less 文件。此外,虽然variables.less 文件定义了颜色,但它没有定义主题的其他方面,例如边框半径、间距等。

想到的另一种方法是找到现有的由主题定义的与我想要的近似的 CSS 类,并将它们应用到我的 HTML 中。不过,这似乎是有限的,而且听起来可能很脆弱。

标准小部件似乎通过让每个主题“了解”他们想要显示的每个小部件来处理这个问题。我宁愿不需要修改每个主题,但如果需要,这是一个可以接受的备用方案。

有什么建议吗?

【问题讨论】:

  • 您是否尝试使用 dojo 内部使用的 css 类来使其小部件工作/主题化?
  • 不,因为我不知道它们是否“稳定”。如果它们是私有的实现细节,它们可能会随着 dijit 包的修改而改变。特别是,我担心 2.0 的变化。但是,如果这些类被认为是公共 API 的一部分,那么它们至少适用于我需要的大部分内容。有什么想法吗?
  • 这个我也不知道,我也快要面对这个问题了。

标签: dojo


【解决方案1】:

根据#dojo IRC 上的layke_,即使在次要版本更新中,CSS 类也可能发生变化,但它很少需要重构自定义小部件——通常只有在 dijit 中存在重大 DOM 重构时。根据该信息,似乎使用dijit* CSS 类是可行的方法。

【讨论】:

    猜你喜欢
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2012-03-07
    • 2011-05-28
    • 2014-09-05
    • 1970-01-01
    • 2020-05-30
    相关资源
    最近更新 更多