2012-09-23 16 views
11

में दिशा ltr मैं एक आरटीएल एचटीएमएल पेज में एक नकारात्मक संख्या प्रदर्शित करने की कोशिश कर रहा हूँ।एक आरटीएल एचटीएमएल पेज

लेबल मेरी direction: ltr

मैं एक jsFiddle लिखा है विपरीत परिदृश्य को प्रदर्शित करने के लिए प्रतिक्रिया करने (दाएं से बाएं से दिखाने का प्रयास कर) नहीं लगता है।

उत्तर

14

अपने सीएसएस में unicode-bidi: embed; जोड़ें। चाल करना चाहिए - updated Fiddle

आप उपयोग पा सकते हैं here

+1

धन्यवाद, मैंने सोचा कि मुझे सीएसएस में सबकुछ पता था .... :-) – devmonster

+0

आपका स्वागत है। ऐसे कुछ विशेषताएं हैं जिन्हें आप अक्सर उपयोग नहीं करते हैं :) –

+0

जेएसफ़ील्ड कोड 'दिशा'' 'rtl' पर सेट करता है। मुझे लगता है कि आप 'ltr' लिखना चाहते थे। –

7

कारण है कि direction: ltr एक नंबर के बाईं पर ऋण चिह्न लग नहीं करता है कि आसपास के अक्षर, दाएँ-से-बाएँ चरित्र बनाने " तटस्थ "अंक और शून्य (या हाइफ़न) जैसे वर्ण उस दिशात्मकता को लेते हैं। direction propertyलेआउट दिशा बक्से और संबंधित मुद्दों, पाठ की लेखन दिशा को प्रभावित नहीं करता है। हाइफन आसपास के पाठ की दिशा लेखन निम्नलिखित, अंकों 9 के दाईं तरफ दिखाई देता है,

<p>א <label id="ProfitShk" class="labelVal">-9 ₪</label> ת 
<p>a <label id="ProfitShk" class="labelVal">-9 ₪</label> b 

पहले मामले में:

निम्नलिखित पर विचार करें। दूसरे मामले में, आदेश विपरीत है, क्योंकि आस-पास के पात्र लैटिन अक्षरों हैं, जिनमें अंतर्निहित बाएं से दाएं दिशात्मकता है।

यह एक मुश्किल मुद्दा है, और हिब्रू के कुछ पृष्ठ HTML स्रोत में संख्या के बाद हाइफ़न डालने की चाल का उपयोग करते हैं, ताकि जब दाएं से बाएं लेखन लागू किया जाए, तो हाइफ़न संख्या के बाईं ओर दिखाई देता है ।

अधिक उचित दृष्टिकोण हैं: सीएसएस में

  1. उपयोग unicode-bidi: bidi-override, एक साथ direction साथ। इसका मतलब है कि सामग्री के भीतर निहित दिशात्मकता को नजरअंदाज कर दिया गया है और direction द्वारा निर्दिष्ट आदेश लागू किया गया है।
  2. direction के साथ, सीएसएस में unicode-bidi: embed का उपयोग करें। यह एक "दिशात्मक द्वीप" बनाता है जिसके भीतर आसपास का पाठ दिशात्मकता को प्रभावित नहीं करता है। जब तत्व सामग्री में केवल "तटस्थ" वर्ण होते हैं, तो direction संपत्ति टेक्स्ट दिशा सेट करती है।
  3. dir विशेषता के साथ, HTML में <bdo> तत्व का उपयोग करें। यह विधि 2 का HTML समकक्ष है, और इस अर्थ में बेहतर है कि यह स्टाइलिस्ट प्रस्तुतिकरण सुझावों के बारे में नहीं है (जो सीएसएस है और सबसे अच्छा करता है) लेकिन चीजों को सही करने के बारे में, दिशात्मकता में कुछ बुनियादी समस्याओं से निपटना।
  4. स्ट्रिंग से पहले और बाद में बाएं से दाएं और दाएं से बाएं चिह्न का उपयोग करें। उन्हें HTML में &lrm; और &rlm; के रूप में दर्शाया जा सकता है। इससे स्ट्रिंग से पहले अंतिम चरित्र एक बाएं से दाएं चिह्न को बनाता है, जिससे इसे बाएं से दाएं प्रदर्शित किया जा सकता है, यदि इसमें केवल "तटस्थ" वर्ण होते हैं।

यह एक जटिल समस्या की एक सरलीकृत प्रस्तुति थी। वैसे भी, <bdo> का उपयोग शायद सबसे अच्छा तरीका है।सभी दृष्टिकोण में, दिशात्मकता की स्थापना, छोटी संभव स्ट्रिंग के लिए प्रतिबंधित किया जाना चाहिए उदाहरण में इस तरह के रूप -9:

<p>א <label id="ProfitShk" class="labelVal"><bdo dir="ltr">-9</bdo> ₪</label> ת 

ऋण चिह्न के रूप में इस्तेमाल चरित्र वास्तव में यूनिकोड शून्य होना चाहिए "-" U + 2212 MINUS साइन, HTML में &minus; के रूप में प्रतिनिधित्व योग्य है, लेकिन यह दिशात्मकता को प्रभावित नहीं करता है।

+0

+1 –

2

हेनरिक के जवाब के अलावा, मैं बहुत की तरह ऋण चिह्न से पहले एक LRM नियंत्रण चरित्र जोड़ना होगा:

<label id="ProfitShk" class="labelVal">&lrm;-9 ₪</label>​​​​​​​​​​​​​​​​​​​​​​ 

(आप क्या चाहते हैं जो शायद है) इस तरह से ऋण चिह्न 9 के समक्ष रखा जाता है

यह microsoft doc अन्य नियंत्रण पात्रों के साथ एलआरएम नियंत्रण चरित्र बताता है।

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