当我的网站显示希伯来语文本与数字混合,并且中间有一个数字与破折号,中间的破折号显示RTL.例如,文字:
οמה4-0,它应该显示4-0而不是0-4,因为它是一个数字序列,’4’在’0’之前.然而,在我检查的浏览器上,它在’4’之前显示’0′.
οמה4-0,它应该显示4-0而不是0-4,因为它是一个数字序列,’4’在’0’之前.然而,在我检查的浏览器上,它在’4’之前显示’0′.
由于这可能会发生系统数据中的任何地方显示,所以最好有一个CSS解决方案不需要这样的东西:
<span style="direction:ltr">4-0</span>
文本的一般方向应保持RTL,但带有破折号的数字应显示为LTR.应在主要浏览器(IE,Firefox,Chrome)上正确显示.
解决方法
您可以在数字序列之前和之后嵌入
left-to-right和
right-to-left标记字符(& lrm;和& rlm) – 这不需要任何额外的标记,不分隔符,并将保留源文档中的文本顺序.
一个替代方法是使用一些标记来区分数字,与破折号(类似于你所做的),因为Unicode BIDI算法在没有帮助(lrm和rlm)的情况下,不会很好地处理这个特定场景.
没有必要像您所做的一样内联CSS,但您仍然需要以下内容:
CSS:
.numdash { direction: ltr; }
HTML:
<span class="numdash">4-0</span>
第三个选项是反转数字,并在标记中简单地使用0-4,并将其与Bidi算法相反.