更改dijit的主题或样式

时间:2012-02-13 20:20:57

标签: css dialog dojo

JSP1 :具有Dojo widget.Style主题“claro”用于body标签。

JSP2 :有一个dojo小部件 - 对话框。样式定义直接应用于窗口小部件。 (从功能上讲,这个jsp是一个页脚)。

<div dojoType="dijit.Dialog" id="privacyDialog" style="background-color:#FFFFDF; border-style:solid; border-width:1px; border-color:#000; height:203px; width:350px; z-index:9999; display:none;">

JSP1包含JSP2

问题 :在运行时,JSP2中对话框中定义的样式将被覆盖,并出现对话框,其中包含claro.css中定义的样式(标题酒吧有蓝色,关闭图标等)。

必需:对话框应显示为在JSP2中的小部件中定义的。

我在阅读http://dojotoolkit.org/reference-guide/dijit/themes.html#id24之后尝试覆盖主题,但它仍然部分显示了claro.css中指定的主题(关闭图标,标题栏)

在我的情况下:将类指定为“form1”,并在claro.css中添加代码 enter image description here

1 个答案:

答案 0 :(得分:2)

您的策略是正确的:创建一个更具体的CSS选择器样式,因此它将覆盖默认值。

必须是您的选择器(.form1 .dijitDialog)未应用于该元素。查看Firebug检查器中的元素 - 您的样式是否被发现但被覆盖(在firebug样式检查器中,它是否具有删除功能)? claro中可能有一些更具体的风格。

或者,你的风格根本没有应用于元素吗?

另外,我建议你不要把你的样式放到claro.css文件中,而是放在你自己的.css文件中。这将使dojo升级更少噩梦。

<强>更新 我明白了:

  

在运行时,JSP2中的对话框中定义的样式正在获得   覆盖,将出现带有已定义样式的对话框   在claro.css中(带蓝色标题栏,关闭图标等)。

这意味着您的样式被找到并被应用。道场主题风格更具体。什么是覆盖你的选择器?

如果没有看到,我可能会建议在您的正文标记中添加一个类,例如<body class='claro myCompany'...,然后将其添加到您的选择器中:

.myCompany .form1 .dijitDialog