我有一个以两种语言显示的网站 - 英语和波斯语。列表项的标题可以同时混合使用两种语言。一切正常,只要你有文本,它就可以使用css中的direction:rtl
呈现。
但问题是我还可以在标题内部或结尾处有一个数字(在波斯语中写的和英语一样 - 从左到右)。这最终会出现问题,因为无论我在哪里放这个号码都会弄乱标题中的单词顺序(数字是标题末尾的广告ID)。
要解决这个问题,我使用&rlm
和&lrm
前面的id - 但问题是我必须根据选择的语言切换这两个。
我正确的html是这样的(‏
修复了波斯语中的id号问题):
<h3>
The name of my خدمات باشد is long
<span style="color:#999;">‏#89798798</span>
</h3>
JS FIDDLE:http://jsfiddle.net/WzF2D/
我尝试在包围ID的范围内设置direction:ltr
,但它仍然无效。我还尝试在unicode-bidi:embed
上使用h3
,但也没有。{/ p>
如何使用css解决这个问题,而不必依赖‏
?
答案 0 :(得分:3)
我将假设所需的渲染使用从右到左的整体书写,即使文本(至少在示例中)主要是英语,在句子内的阿拉伯字母中有一些单词。此外,我假设像“#89798798”这样的表达式被视为单独的片段,因此当它出现在英语单词后面时,它不会被视为英语文本的一部分,而是设置在RTL布局的左侧。
在这些(相当令人惊讶的)前提下,CSS解决方案是使这样的片段成为双向性隔离:
<span style="color:#999; unicode-bidi: embed">#89798798</span>