用于指定文本对齐=右的数据dojo道具是什么?

用于指定文本对齐=右的数据dojo道具是什么?,dojo,dijit.form,Dojo,Dijit.form,我一直在尝试dijit textbox的文档,但似乎没有关于如何进行文本对齐:正确css样式设置的适当文档 <input type="text" name="firstname" value="testing testing" data-dojo-type="dijit/form/TextBox" data-dojo-props="trim:true, propercase:true" id="firstname" /> 如果我添加“align:right”,解

我一直在尝试dijit textbox的文档,但似乎没有关于如何进行文本对齐:正确css样式设置的适当文档

<input type="text" name="firstname" value="testing testing"
    data-dojo-type="dijit/form/TextBox"
    data-dojo-props="trim:true, propercase:true" id="firstname" />

如果我添加“align:right”,解析将失败。我也尝试通过CSS,但文本对齐似乎没有得到反映

<input type="text" name="firstname" value="testing testing"
    data-dojo-type="dijit/form/TextBox"
    data-dojo-props="trim:true, propercase:true, align: right" id="firstname" />

我还尝试了通过css样式进行文本对齐,但它不能很好地解析

<input type="text" name="firstname" value="testing testing"
    data-dojo-type="dijit/form/TextBox"
    data-dojo-props="style: { width: '150px'; text-align: right}" id="firstname" />

我不知道是否可以使用
数据dojo props
属性设置文本对齐。但是,您可以使用
CSS
选择器解决问题:

HTML:

<input type="text" name="firstname" value="testing testing"
    data-dojo-type="dijit/form/TextBox"
    data-dojo-props="trim:true, propercase:true, align: right" id="firstname" />
input[name="firstname"] {
 text-align: right;   
}

另一种优雅的方法是,创建一个属性选择器,查询
数据dojo道具的
align:right
值。使用此选择器,您可以一次访问所有输入项

input[data-dojo-props*="align: right"] {
 text-align: right;   
}
在这里你可以找到一个例子


更新: 我做了一些进一步的调查,得出结论,dojo解析失败的原因是语法问题

以下代码在工作时不会出现解析错误:

<input type="text" name="firstname" value="testing testing"
    data-dojo-type="dijit/form/TextBox"
    data-dojo-props="trim:true, propercase:true, style:'text-align: right'" id="firstname" />

但结果并不像预期的那样:

    <div class="dijit dijitReset dijitInline dijitLeft dijitTextBox"
 id="widget_firstname" role="presentation" widgetid="firstname" style="text-
align: right;"><div class="dijitReset dijitInputField dijitInputContainer">
<input class="dijitReset dijitInputInner" data-dojo-attach-
point="textbox,focusNode" autocomplete="off" name="firstname" type="text" 
tabindex="0" id="firstname" value="Testing Testing"></div></div>

因为样式将应用于包装器div


我认为处理您的需求的最佳方法是只使用CSS样式,而不使用data dojo props属性。

dojo通过双向文本支持本地支持右对齐文本输入

通过在元素上设置
dir
标记,可以反转部分或整个页面(包括输入)的文本方向:

<body dir="rtl">
    <!-- Widgets Here -->
</body>

如问题中所述,当我尝试在HTML声明中添加数据dojo props=align:right时,dojo停止了解析。接下来的dojo声明并没有转换为dojo控件,只是转换为普通的HTML输入控件。这意味着解析器有错误。是的,我指的右对齐文本是文本框中的数值,而不是文本方向。
<body dir="rtl">
    <!-- Widgets Here -->
</body>
.dijitInputContainer .dijitInputInner {
    text-align: right;
}