0

如果输入文本是 dojo 日期选择器,我无法设置输入文本的背景颜色(或边框颜色)。我的 dojo datepicker 是带有两个附加属性的输入文本:

dojoType="dropdowndatepicker"
displayFormat="yyyy-MM-dd"

我假设 dojo 有它自己的样式,所以即使我提供了一个指定背景颜色的样式,dojo 也会覆盖它。

像这样的东西不起作用:

<input type="text" ..other attributes.. style="width:5em;border:solid #FF0000;">

任何帮助都会得到帮助。

我可以补充一下,我的 dojo 版本很旧(将升级),但目前我无法利用 dijit 等较新的功能。

4

3 回答 3

2

Dojo 的大多数小部件都使用模板。您编写的 HTML 代码(带有dojoType属性和内容)只不过是配置小部件的占位符。应用于此 HTML 的内联 CSS 将应用于您的小部件的顶层。

您的小部件通常由多个 HTML 元素组成,因此您内联编写的 CSS 可能不会应用于正确的元素。此外,Dojo 确实使用了主题(您通常将其定义class="themename"为父标签上的 a(通常是<body>),并且 Dojo 的大多数默认主题都使用!importantCSS 行来实现各种功能。

最好的方法是检查使用小部件时创建了哪些 HTML 元素,并在该特定元素上定义样式。但是因为 Dojo 主题的 CSS 属性是 using !important,所以建议比他们定义的更具体。最简单的方法是在<body>标签中添加自定义类名,例如:

<body class="claro custom">

</body>

然后定义你的风格,如:

.custom .dijitTextBox > .dijitInputField {
    background-color: yellow;
}
.custom .dijitTextBox > .dijitArrowButton {
    background: red;
}

我还做了一个例子JSFiddle

于 2013-07-25T12:13:15.160 回答
1

看看这个线程 - 我认为这可以帮助你:

更改 DOJO 小部件的默认样式

问候

于 2013-07-25T12:12:36.040 回答
-1

将 !important 添加到规则的末尾:

<input type="text" ..other attributes.. style="width:5em !important;border:solid #FF0000 !important;">

这应该将东西应用于输入。请检查当 dojo 开始使用该元素时是否没有替换该元素,以及您是否将样式应用于正确的元素。

于 2013-07-25T10:03:24.807 回答