从右到左的语言(如阿拉伯语和希伯来语),括号反转

时间:2013-08-22 08:37:49

标签: html css right-to-left

现在我有一个像(在ltr中)的字符串

  

希伯来文(3)

当我使用dir =“rtl”或direction:rtl重定向它实际上的字符串时:

  

מחיראחד(3)

(实际上我刚刚进入希伯来字符(3)它自动变得像上面那样↑)

有没有办法让它像

  

(3)希伯来文

(使用html或css)

3 个答案:

答案 0 :(得分:8)

您无需在另外的范围内包装括号内的文字。

相反,要修复此问题,请在结束括号后添加 RLM控制字符‏)。 RLM字符充当另一个希伯来语/阿拉伯字符,因此括号(它是一个弱字符)改变其方向并移动到正确的位置。

像这样:

<div>מחיר אחד(3)&rlm;</div>

NB:如果在元素上设置属性dir="rtl",则甚至不需要RLM控制字符。

像这样:

<div dir="rtl">מחיר אחד(3)</div>

CODEPEN (jsFiddle down me)

这个microsoft doc解释了RLM控制字符以及其他类似的控制字符。

答案 1 :(得分:5)

(更新:谢谢你抢劫澄清你的评论)

这是一种侵入性较小的解决方案(result in jsFiddle):

<span lang="he" dir="rtl">מחיר אחד<span>(3)</span></span>

似乎最后的括号被称为标点符号,因此处理方式不同。 This article给了我一些清晰度:

  

...请注意,与align =“right”不同,标点符号也会重新定位...请参阅Sample RTL Document

在示例文档中,最后一个括号的相同重定位也出现在副标题“双向覆盖(BDO)”中。

*检查了最新chrome / ff / safari / ie

中的jsfiddle解决方案

答案 2 :(得分:0)

其中一个解决方案是在括号

之后添加**&#x200e;**

感谢@freeworlder对于从右到左显示样式错误地显示括号中的解决方案

即使您可以使用其他字符,请点击此链接http://www.codetable.net/hex/200e