我正在开发一个支持 RTL 的颜色选择器小部件。我们有一个以#为前缀的十六进制字段,它是一个输入文本字段。如果我给文本字段指定direction:rtl,则它的行为有所不同,键入的字符会附加到文本上,但光标会在文本的左侧。
为了验证这一点,我将语言更改为阿拉伯语并在Mac中工作。当我选择英文键盘时,输入字段是ltr,只有文本对齐在右边;当我选择阿拉伯语键盘时,输入字段将成为rtl。如果操作系统本身根据键盘语言处理文本字段,是否有必要将 direction:rtl 赋予colorpicker中的十六进制字段?
注意: 如果我给rtl十六进制字段,如果第一个字母是字母,则#附加在末尾,如果第一个字母是数字,则它附加到文本的前缀。 您可以检查这个小提琴-https://jsfiddle.net/brindhaa10/cv04o8wr/
代码:
<div class="rtl">
<h4>
RTL
</h4>
<div class="row">
<input value="#ffffff" />
<span> In RTL, when <b>#</b> precedes an alphabet, it is repositioned to the end </span>
</div>
<div class="row">
<input value="#000fff" />
<span> In RTL, when <b>#</b> precedes a number, it is not repositioned. </span>
</div>
</div>
百分比字段,货币字段等出现相同的问题。如果是RTL,则重新放置符号Ex是否正确: 100%< / b>在RTL中将显示为%100 。
答案 0 :(得分:0)
您需要使用RLM
字符将方向设置扩展到中性和弱字符,这些字符可以编码为‏
或‏
。因此,基本上,您所需要做的就是在RLM
字符的末尾附加#
字符...
<input value="#‏000fff" />
请参见下面的代码段...
<div style="direction:rtl">
<input value="#‏00ffff" />
</div>