每当用户尝试在阿拉伯语单词C++ لغة برمجة
浏览器将其显示为++C لغة برمجة
。
是否可以使用CSS解决此问题?
被修改
我以这种方式解决它。 http://jsfiddle.net/PfjdE/
HTML
<div id="text">لغة برمجة C++</div>
CSS
#text {
direction: rtl;
}
#text:after {
content: 'a';
color: transparent;
}
如果有人找到最佳解决方案,我会打开这个问题。
答案 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方法,但这只是另一种方法)