2010-12-01 24 views
15

के अंदर पाठ के एक टुकड़े को 'दिशा ltr' होने के लिए कैसे मजबूर करें, तो फोन नंबर हमेशा एलटीआर (बाएं से दाएं) होते हैं।'दिशा आरटीएल' अनुच्छेद

एक बहुभाषी वेबसाइट मैं (एक '+' उपसर्ग और संख्या द्वारा अलग '-') एक फोन नंबर डालने की आवश्यकता पर कार्य करना एक पाठ पैरा के अंदर है कि दिशा 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' को 'display:inline'

नहीं बदल सकता हूं?

इसे कैसे काम करें?

+1

आरटीएल एल्गोरिदम आम तौर पर संख्याओं को ध्यान में रखते हैं, इसलिए कंटेनर के 'एलटीआर' या 'आरटीएल' के बावजूद आपको संख्याओं को सही ढंग से प्रस्तुत करने के लिए कुछ भी करने की आवश्यकता नहीं है। क्या आप वास्तव में इस मुद्दे को देख रहे हैं या बस छूट का प्रयास कर रहे हैं? – Oded

+2

@ ओडेड: मैं इसे देख रहा हूं। मुझे लगता है कि संख्याओं के बीच '+' और '-' की वजह से यह केवल एल्गोरिदम को भ्रमित कर रहा है ... – Jonathan

+0

अरबी में कम से कम, + चिह्न को फ़ोन नंबर के बाईं ओर जाना चाहिए, जैसा कि यह अंग्रेजी में करता है। जैसे ही आप अंग्रेजी में हों, फोन नंबर टाइप करें, पहले '+' अक्षर टाइप करें, फिर बाईं ओर से पहला नंबर, फिर बाईं ओर से दूसरा नंबर, और इसी तरह। आप ऐसा कुछ ठीक करने की कोशिश कर रहे हैं जो वास्तव में एक समस्या नहीं है। – Flimm

उत्तर

12

तुम बस से पहले + संकेत एक यूनिकोड दिशात्मकता मार्कर वर्ण का उपयोग एल्गोरिथ्म संकेत यह की जरूरत है देने के लिए कर सकते हैं की कोशिश।

ये हैं:

LTR: 0x200E 
RTL: 0x200F 

तो:

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

देखें this अतः अधिक जानकारी के लिए जवाब।

+6

मैंने इसका परीक्षण किया और इसे काम करने की पुष्टि कर सकते हैं, हालांकि एचटीएमएल नोटेशन में '& # x200E;' और '& # x200F;' होगा। –

+0

@nikc - अच्छी तरह से देखा गया। अद्यतन एचटीएमएल। – Oded

19

जोड़ने #phone {direction:ltr; display:inline-block}

+3

यह वास्तव में सबसे सही "शैली" उन्मुख उत्तर – tutuDajuju

+0

है क्योंकि एचटीएमएल UAs सीएसएस स्टाइल बंद कर सकते हैं, इसलिए हम एचटीएमएल लेखकों को एचटीएमएल डायर एट्रिब्यूट और तत्व का उपयोग करने के लिए स्टाइल शीट की अनुपस्थिति में सही बिडरेक्शनल लेआउट सुनिश्चित करने की सलाह देते हैं। लेखकों को एचटीएमएल दस्तावेजों में दिशा का उपयोग नहीं करना चाहिए। स्रोत: http://www.w3.org/TR/css-writing-modes-3/#direction –

6

एक अन्य विकल्प dir='ltr' विशेषता का उपयोग करने के लिए, अपने इनलाइन तत्व में हो सकता है:

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

कृपया ध्यान दें कि आपके HTML में &#x200E; सहित dir='ltr' विशेषता का उपयोग कर के रूप में के रूप में बुरा है।

+0

आईएमएचओ यह सबसे सुंदर समाधान है। – fguillen

संबंधित मुद्दे