rtl方向的英语与阿拉伯语

时间:2013-04-26 06:36:07

标签: html css

每当用户尝试在阿拉伯语单词C++ لغة برمجة

之后写英语单词时,我就会遇到问题

浏览器将其显示为++C لغة برمجة

是否可以使用CSS解决此问题?

被修改

我以这种方式解决它。 http://jsfiddle.net/PfjdE/

HTML

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

CSS

#text {
    direction: rtl;
}
#text:after {
    content: 'a';
    color: transparent;
}

如果有人找到最佳解决方案,我会打开这个问题。

2 个答案:

答案 0 :(得分:6)

如果这是关于页面内容与直接用户输入相反(问题公式建议后者,而你的jsfiddle前者)和目的是在给出的特殊情况下实现正确的方向,那么比你的jsfiddle更清洁的解决方案(附加拉丁字母并试图使其不可见)将是这样的:

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

通过附加U + 200E LEFT-TO-RIGHT MARK,您可以从左到右显示“C ++”。

但是这样的事情并不是真的要解决CSS,因为你需要进入文本的部分内容,除非制作元素,否则CSS中无法访问。所以你应该使用像

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

使用CSS代码

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

比照。到Direction ltr in a rtl HTML page(实际上,当前的问题可能是重复的)。

答案 1 :(得分:2)

通过使用&#34; bdi&#34;还有另一种方法可以做到这一点。标记以及text-align-right属性。 所以你必须写 -

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

请记住应用text-align:right;属性到父元素。 (我仍然更喜欢direction-rtl方法,但这只是另一种方法)