是否有必要将direction:rtl赋予输入文本字段?

时间:2018-10-15 06:08:33

标签: html arrays html5 right-to-left

我正在开发一个支持 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

1 个答案:

答案 0 :(得分:0)

您需要使用RLM字符将方向设置扩展到中性和弱字符,这些字符可以编码为&rlm;&#x200F;。因此,基本上,您所需要做的就是在RLM字符的末尾附加#字符...

<input value="#&#x200F;000fff" /> 

请参见下面的代码段...

<div style="direction:rtl">
  <input value="#&rlm;00ffff" />
</div>