2010-12-01 86 views
15

因此,電話號碼始終是ltr(從左到右)。如何強制一段文字'方向ltr'在'方向rtl'段

在一個多語種的網站,我需要插入一個電話號碼(相隔一個「+」前綴和數字「 - 」)工作文本段落裏面有方向的RTL(對於課程的相關語言)

所以,我有這樣的事情:

.ltr #test {direction:ltr} 
 
.rtl #test {direction:rtl} 
 
#phone {direction:ltr}
<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>

當然這是不工作,因爲「direction」僅適用於塊元素和'span'是一個內聯元素。我需要電話號碼在段落內,所以我不能將'span'更改爲'display:inline'

我很清楚嗎?

如何使它工作?

+1

RTL算法通常會將數字考慮在內,因此無論容器的「LTR」或「RTL」如何,您都無需爲數字正確呈現做任何事情。你真的看到這個問題,或者只是想搶先? – Oded 2010-12-01 15:04:04

+2

@Oded:我看到了。我認爲,因爲數字之間的'+'和' - ',它只是混淆了算法... – Jonathan 2010-12-01 15:05:36

+0

至少在阿拉伯語中,+符號應該放在電話號碼的左側,就像它在英語中一樣。按照英文輸入電話號碼,首先輸入「+」字符,然後輸入左邊的第一個數字,然後輸入左邊的第二個數字,依此類推。你可能試圖修復一些實際上並不成問題的東西。 – Flimm 2017-12-09 11:19:35

回答

12

您可以使用Unicode方向標記性狀只是+號前給予算法,它需要的提示。

它們是:

LTR: 0x200E 
RTL: 0x200F 

所以:

<p id="text">Please call to <span id="phone">&#x200F;+44-123-321</span> for some help</p>

this SO回答更多的細節。

19

嘗試增加#phone {direction:ltr; display:inline-block}

+3

這實際上似乎是最正確的「風格」導向的答案 – tutuDajuju 2013-12-01 13:10:42

6

另一個選擇可能是使用dir='ltr'屬性,在您的內聯元素:

<p id="text">Please call to <span dir='ltr'>+44-123-321</span> for some help</p> 

請注意,包括在你的HTML &#x200E;是使用dir='ltr'屬性的那樣糟糕。