4

我有一个以两种语言显示的网站——英语和波斯语。列表项的标题可以同时使用两种语言。一切都好,直到这里,只要你有文本,它就会direction:rtl在 css 中使用。

但问题是我也可以在标题内部或末尾有一个数字(波斯语的书写和阅读与英语相同 - 从左到右)。这最终会产生一个问题,因为无论我把那个数字放在哪里,它都会弄乱标题中的单词顺序(数字是标题末尾的广告 ID)。

为了解决这个问题,我使用&rlm&lrmid 前面的 - 但问题是我必须根据选择的语言来切换这两个。

有数字问题的双向文本

我正确的 html 是这样的(‏修复了波斯语中的 id 号问题):

<h3>
   The name of my خدمات باشد is long
   <span style="color:#999;">&rlm;#89798798</span>
</h3> 

JS 小提琴:http: //jsfiddle.net/WzF2D/

我尝试设置direction:ltr环绕 ID 的跨度,但它仍然无法正常工作。我也试过用上但也没用unicode-bidi:embedh3

我怎样才能通过只使用 css 而不必依赖来解决这个问题&rlm;

4

1 回答 1

4

我将假设所需的渲染使用整体从右到左的书写方式,即使文本(至少在示例中)主要是英文,句子中有一些阿拉伯字母单词。此外,我假设像“#89798798”这样的表达式将被视为单独的片段,因此当它出现在英文单词之后时,它不会被视为英文文本的一部分,而是设置在它的左侧,在 RTL 布局中。

在这些(相当惊人的)前提下,CSS 解决方案是使这样的片段成为双向隔离:

<span style="color:#999; unicode-bidi: embed">#89798798</span>
于 2012-08-02T15:08:04.780 回答