英语和阿拉伯语的实时方向



我有一个问题,每当用户试图在阿拉伯语单词之后写英语单词,即C++ لغة برمجة

浏览器显示如下++C لغة برمجة .

是否有可能使用CSS来解决这个问题?

我用这种方法解它。http://jsfiddle.net/PfjdE/

HTML

<div id="text">لغة برمجة C++</div>
CSS

#text {
    direction: rtl;
}
#text:after {
    content: 'a';
    color: transparent;
}
如果有人找到最好的解决方案,我将把这个问题公开。

还有另一种方法,即使用"bdi"标记和text-align- right属性。所以你需要写-

    <div style="text-align:right"> <bdi>  لغة برمجة C++ </bdi> </div>

记得应用text-align: right;属性设置为父元素。(我仍然喜欢方向-rtl方法,但这只是另一种方式来做它)

如果这是关于与直接用户输入相反的页面内容(问题公式建议后者,而您的jsfiddle是前者),并且目的是在给定的特殊情况下获得适当的方向,那么比您的jsfiddle(附加一个拉丁字母并试图使其不可见)更干净的解决方案将是:

#text {
    direction: rtl;
}
#text:after {
    content: '200e';
}

通过附加U+200E left - to - right MARK,可以使" c++ "从左到右显示。

但是像这样的事情并不是CSS真正能解决的,因为你需要进入文本的部分,这些部分在CSS中是不可访问的,除非是made元素。所以你应该使用像

这样的标记
<div id="text">لغة برمجة <span class="ltr">C++</span></div>

与CSS代码

.ltr { unicode-bidi: embed; direction: ltr; }

Cf。

在rtl HTML页面中指向ltr(实际上,当前问题可能与它重复)。

最新更新