2013-08-22 10 views
6

Jetzt habe ich eine Zeichenfolge wie (in Litern)In rechts nach links-Sprache (wie Arabisch und Hebräisch), Halter umgekehrt

hebräischer Text (3)

und wenn ich dir = "RTL" oder Richtung: RTL die Zeichenfolge zu umleiten es tatsächlich geht:

מחיר אחד (3)

(tatsächlich eingegeben i Hebräisch charactor (3) es gerade jetzt automaticlly wie oben wurde ↑)

ist es eine Möglichkeit, es zu machen wie

(3) hebräischer Text

(mit hTML oder CSS)

Antwort

8

Sie brauchen nicht den Text in Klammern in einer separaten Spanne zu wickeln.

Stattdessen, um dieses Problem zu beheben, fügen Sie ein RLM Steuerzeichen (‏) nach der schließenden Klammer. Das RLM-Zeichen verhält sich wie ein anderes hebräisches/arabisches Zeichen und so ändert die Klammer (die ein schwaches Zeichen ist) ihre Richtung und bewegt sich an die richtige Stelle.

Wie so:

<div>מחיר אחד(3)&rlm;</div> 

NB: Wenn Sie das Attribut dir="rtl" auf das Element gesetzt - dann auch die RLM Steuerzeichen ist nicht erforderlich.

Wie so:

<div dir="rtl">מחיר אחד(3)</div> 

CODEPEN (jsFiddle von mir unten)

Diese microsoft doc erklärt die RLM Steuerzeichen zusammen mit anderen ähnlichen Steuerzeichen.

+0

Ich fand mein Beispiel in dem Artikel nicht sehr geeignet ~ Sie sind direkt in Ihrer zweiten Zeile von Codes, wenn ich dir = 'rtl' und thansk zum Browser alles gut geht (ich erinnere mich, wenn ich diese Frage eingerichtet, es vermasselt. ..ist das meine Illusion oder Chrom aktualisiert ..?) – sleepholic

+1

Wie auch immer mein Problem gelöst wurde. Aber ich denke eine neue Bedingung aus, wenn ich eine hebräische Phrase in Englisch (ltr) oder eine englische Phrase in Hebräisch (rtl) mit verwende Klammern, es wird auch versauen. In dem Fall, wenn wir nicht wollen, dass eine Spanne zu wrap und stylen die spezifische Sprache Phrase wir können '‏' oder '‎'. – sleepholic

5

(aktualisiert: danke rob für Ihren Kommentar) Klärung

dies ist etwas weniger invasive Lösung (result in jsFiddle):

<span lang="he" dir="rtl">מחיר אחד<span>(3)</span></span> 

Es scheint, die letzte Klammer wird als Interpunktions concidered und somit anders behandelt. This article gab mir Klarheit:

... Beachten Sie, dass im Gegensatz zu align = „right“, die Zeichensetzung wird auch ... Siehe verlegt Sample RTL Document

Im Beispieldokument die gleiche Verlagerung der letzten Klammern finden sich auch im Untertitel "Bidirectional Override (BDO)".

* überprüft die jsfiddle Lösung in neueste Chrom/ff/Safari/ie

+0

Sind Sie sich bewusst, dass es sich bei der von Ihnen bereitgestellten Lösung um einen bekannten Fehler handelt, mit dem Sie arbeiten, oder dass Ihre Lösung der richtige Weg ist, um mit dem erwarteten Browserverhalten umzugehen? Mit welchen Browsern haben Sie Ihre Lösung getestet? – rob

+1

Da ich mit RLT-Sprachen und somit mit ihren Browser-Spezifika nicht vertraut bin, kann ich nicht 100% sicher sein, ob meine Lösung der absolut richtige Weg ist, mit der gegebenen Situation umzugehen, aber wenn die Klammern als Satzzeichen und als solches betrachtet werden Bei der Verlagerung scheint ein span wrapper dieses Verhalten aufzuheben. –

0

eine der Lösungen ist **&#x200e;** nach der Klammer hinzufügen

Dank für die Lösung auf Konsolen @freeworlder zeigt fälschlicherweise für rechts nach links Anzeigestil

selbst können Sie andere Zeichen verwenden, folgen Sie diesem Link http://www.codetable.net/hex/200e

Verwandte Themen