font color align html css right-to-left

html - color - ¿Por qué "[x] y" se visualiza incorrectamente en la dirección RTL?



html css font color (5)

<div style="direction: rtl"> [x]y </div>

Puede ver que el texto HTML [x]y muestra como x]y] .

¿Cuál es la razón de ese resultado?

PD: obtengo ese resultado en Chrome 56.0.2924.87 (64 bits).


Después de algunas investigaciones, encontré la siguiente información: dirección de texto de derecha a izquierda

Los paréntesis y los corchetes no tienen una dirección inherente. El paréntesis abierto está entre las ejecuciones de texto LTR y RTL y, por lo tanto, no puede "heredar" la dirección del texto circundante. Por lo tanto, se predetermina a la dirección de base RTL del párrafo y se coloca a la izquierda de la palabra hebrea shalom. Tenga en cuenta que el corchete de cierre está incrustado en una sola ejecución de texto de izquierda a derecha. Por lo tanto, adopta la dirección del texto que lo rodea y se coloca a la derecha de la palabra en inglés shalom.


Intenta usar un corchete abierto "[" donde necesites un corchete cuadrado cerrado, y viceversa. Tenía una fuente con una letra asignada a "[" y no se mostraría. Cambié la letra en la base de datos a "]" y funcionó.


No puedo decirte el motivo, pero puedo decirte cómo solucionarlo: agrega unicode-bidi: bidi-override; . Ver more sobre eso

<div style="direction: rtl; unicode-bidi: bidi-override;"> [x]y </div>

La descripción

La propiedad unicode-bidi se usa junto con la propiedad de dirección para establecer o devolver si el texto debe anularse para admitir varios idiomas en el mismo documento.

no es lo suficientemente claro para explicar el comportamiento. Sin embargo, funciona.

EDITAR

El artículo de MDN arroja algo de luz aquí, bidi-override realidad deshabilita el comportamiento inteligente estándar del navegador y todo funciona como es / como se esperaba.


Se representa correctamente, es decir, de acuerdo con las especificaciones. Ha solicitado el diseño de derecha a izquierda. La renderización primero toma el [ carácter. Es direccionalmente neutral y, por lo tanto, se representa en un RTL ejecutado en el extremo derecho y reflejado (por lo que parece). A continuación, a la izquierda aparece x]y en ese orden, ya que las letras latinas y tienen una direccionalidad inherente de izquierda a derecha y la neutral ] obtiene su direccionalidad de ellas.
Las conclusiones que se extraerán dependen del renderizado que desee y de las razones por las que utiliza la direccionalidad de derecha a izquierda.