如何强制一段文字在'方向rtl'段落内成为'方向ltr'

Jon*_*han 20 html css multilingual bidi

因此,电话号码始终是ltr(从左到右).

在多语言网站上工作我需要在一个带有方向rtl的文本段落中插入一个电话号码(带有'+'前缀和数字用' - '分隔)(当然对于相关语言)

所以我有这样的事情:

.ltr #test {direction:ltr}
.rtl #test {direction:rtl}
#phone {direction:ltr}
Run Code Online (Sandbox Code Playgroud)
<div class="ltr"><p id="test">Please call to <span id="phone">+44-123-321</span> for some help.</p></div>
<div class="rtl"><p id="test">Please call to <span id="phone">+44-123-321</span> for some help.</p></div>
Run Code Online (Sandbox Code Playgroud)

当然这不起作用,因为' direction'仅适用于块元素,' span'是内联元素.我需要电话号码在段落内,所以我不能改变' span'到' display:inline'

我很清楚?

如何使它工作?

Dan*_*iel 27

尝试添加 #phone {direction:ltr; display:inline-block}

  • 这实际上似乎是最正确的"风格"导向的答案 (3认同)

Ode*_*ded 15

您可以在+符号前使用unicode方向性标记字符,为算法提供所需的提示.

这些是:

LTR: 0x200E
RTL: 0x200F
Run Code Online (Sandbox Code Playgroud)

所以:

<p id="text">Please call to <span id="phone">&#x200F;+44-123-321</span> for some help</p>
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅 SO答案.

  • 我测试了这个并且可以确认它可以工作,但是在HTML表示法中它将是`&#x200E;`和`&#x200F;`. (6认同)

Sae*_*ati 12

另一种选择可能是dir='ltr'在内联元素中使用属性:

<p id="text">Please call to <span dir='ltr'>+44-123-321</span> for some help</p>
Run Code Online (Sandbox Code Playgroud)

请注意,&#x200E;HTML中的内容与使用dir='ltr'属性一样糟糕.