在文本框中,您只需要重置direction,并将文本对齐到右侧:
BODY {
direction: rtl;
}
#test {
direction: ltr;
text-align: right
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
Lorem ipsum dolor sit amet consectetuer adipiscing elit. Lorem ipsum dolor sit amet consectetuer adipiscing elit. Lorem ipsum dolor sit amet consectetuer adipiscing elit. Lorem ipsum dolor sit amet consectetuer adipiscing elit.<br />
<input type="text" id="test" value="-109309" />
</div>Run Code Online (Sandbox Code Playgroud)
小智 8
当涉及UI中的上下文时,这是RTL/LTR的一般问题.
简短回答:最好的方法是将数字输入和字符串输入专用于单独的文本框.大多数RTL语言的数字(不是全部,请注意!)是LTR,字符串是RTL,分割上下文允许您正确定义输入.
示例 -
Place: <input type="text" dir="rtl" />
Temperature: <input type="number" dir="ltr" />
Run Code Online (Sandbox Code Playgroud)
请注意,W3C建议在html标记中设置语言而不是CSS,这对于辅助功能和屏幕阅读器来说也更好.如果可能,还建议添加lang =""属性.
在可能的情况下,分别为字符串和数字拆分文本框有几个很好的理由,特别是对于RTL/LTR:
<span dir="ltr">...</span>或dir="rtl"相关时)我知道这个问题已有几年了,但我希望这可以帮助那些有兴趣支持RTL或其表单中的混合方向的新考虑因素(以及从那时起的一些技术更新,特别是移动版).