Dojo中class和baseClass之间的区别?或者,何时/如何使用baseClass?

时间:2013-06-14 10:52:47

标签: css class dojo

classbaseClass_WidgetBase之间的实际差异是什么? 它们都会将类添加到窗口小部件的顶部节点。据说baseClass用于窗口小部件中的“状态更改”。但是,关于制作小部件的Dojo教程建议人们在模板中使用$ {baseClass}:

<div class="${baseClass}">
  <div class="${baseClass}Title" data-dojo-attach-point="titleNode" data-dojo-attach-event="onclick:_onClick"></div>
</div>

我想知道在我的每个小部件中是否都有一点我完全没有。

谢谢!

Merc的。

1 个答案:

答案 0 :(得分:4)

查看许多dijit小部件使用的类_CssStateMixin.jsclass属性只是一个自动应用于窗口小部件domNode的css类列表。另一方面,baseClass将用于创建“内置”css类,这些类在窗口小部件状态发生变化时应用(例如,活动,悬停,聚焦等)。

选择dijit/form/Button。它的baseClass是dijitButton。当按钮悬停时,窗口小部件将自动添加css类dijitButtonHover。当用户不再悬停按钮时,将自动删除css类。

如果您将baseClass更改为myButtonClass之类的内容,则自动应用的悬停状态类将为myButtonClassHover。这允许小部件作者轻松地为小部件的各种状态编写css规则,而无需在小部件本身内手动添加类或更改样式。