Я пытаюсь использовать dijit.InlineEditBox.
Я поместил следующий код в мой HTML, используя пример из документации dojo:
<script type="text/javascript">
dojo.require("dijit.InlineEditBox");
dojo.require("dojo.parser");
dojo.require("dijit.form.TextBox");
function editableHeaderOnChange(id, arg){
alert("details changed with id " + id + " and arguments "+arg);
}
</script>
...
<span id="myText" dojoType="dijit.InlineEditBox" onChange="editableHeaderOnChange(this.id,arguments[0])"
autoSave="true" title="My Text">click to edit me</span>
Я использую тему тундры.
Это работает, но выглядит не так хорошо. Виджет имеет свой собственный стиль, который не подходит моему CSS.
Я использовал firebug, чтобы найти источник проблемы. Виджет создает множество вложенных элементов div / span, каждый из которых имеет свой собственный стиль (стиль элемента в firebug):
<span
id="dijit__InlineEditor_0"
class="dijitReset dijitInline"
style="margin: 0px; position: absolute; visibility: hidden; display: block; opacity: 0;" ...>
<input type="text" autocomplete="off"
class="dijit dijitReset dijitLeft dijitTextBox"
id="dijit_form_TextBox_0"
style="line-height: 20px; font-weight: 400; font-family: Trebuchet MS,Helvetica,Arial,Verdana; font-size: 14.5167px; font-style: normal; width: 100%;">
...>
</span></span>
(показаны только соответствующие части ...)
чтобы получить желаемое изображение, которое не будет переведено на новую строку,
Мне нужно изменить ширину dijit_form_TextBox_0 ** до 50%, а позиционирование dijit__InlineEditor_0 на
дисплей: встроенный **;
или изменить расположение всего (большая часть моего макета является плавающей, поэтому позиция: абсолютный не подходит)
Я не могу обратиться к этим элементам span в моем css, чтобы изменить свойства, потому что element.style, конечно, имеет приоритет.
Я не понимаю логику в этой системе ...
почему dijit генерирует стиль непосредственно внутри элемента?
как я могу изменить эти свойства?
Спасибо
Том