html css multilingual bidi

html direction



Cómo forzar que una parte del texto sea ''direction ltr'' dentro de un párrafo ''direction rtl'' (3)

Entonces, los números de teléfono siempre son ltr (de izquierda a derecha).

Trabajando en un sitio web multilingüe, necesito insertar un número de teléfono (con un prefijo ''+'' y los números separados por ''-'') dentro de un párrafo de texto que tiene la dirección rtl (para idiomas relevantes, por supuesto)

Así que tengo algo como esto:

.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>

Por supuesto, esto no funciona porque la '' direction '' solo funciona para elementos de bloque y '' span '' es un elemento en línea. Necesito que el número de teléfono esté dentro del párrafo, así que no puedo cambiar '' span '' a '' display:inline ''

Estoy siendo claro?

¿Cómo hacer que funcione?


Intenta agregar #phone {direction:ltr; display:inline-block} #phone {direction:ltr; display:inline-block}


Otra opción podría ser usar dir=''ltr'' atributo dir=''ltr'' , en su elemento en línea:

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

Tenga en cuenta que incluyendo &#x200E; en su HTML es tan malo como usar dir=''ltr'' atributo dir=''ltr'' .


Puede usar un marcador de dirección de Unicode justo antes del signo + para darle al algoritmo la sugerencia que necesita.

Estos son:

LTR: 0x200E RTL: 0x200F

Asi que:

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

Ver this respuesta SO para más detalles.