Unicode-bidi:纯文本在 firefox 中不起作用

问题描述 投票:0回答:1

我正在编写一个库,它可以获取用户提交的文本并将其呈现在浏览器中。

用户可以提交混合 RTL 和 LTR 文本行的文本,并且每行应以适当的对齐方式和方向呈现。

为此,我在段落 html 元素中使用

unicode-bidi: plaintext
呈现文本,这是为了实现此行为。

我看到一种奇怪的行为,即单个 RTL 文本范围内的换行会导致第二行呈现为 LTR。这只发生在 Firefox 中。我希望找到解决方法或修复方法。切换段落元素上的 unicode-bidi 属性可以解决该问题,就像为我打开开发人员控制台一样。看起来很不稳定。

我正在提交这样的文本:

זוהי פסקה של טקסט. הנה קישור ראשון, זהו טקסט מילוי. הנה קישור שני, זהו טקסט מילוי. והנה קישור שלישי, זהו טקסט מילוי.

这是包裹,包裹的部分是左对齐而不是右对齐。

这是一个演示链接:https://musical-arithmetic-54267c.netlify.app/Style_examples#Links_in_right-to-left_text

图片:

picture of behavior

firefox text browser unicode bidirectional
1个回答
0
投票

我正在发布解决方法,但仍然希望有人能够弄清楚为什么会发生这种情况。

我的解决方案是获取文本容器的父元素,将其设置为

unicode-bidi: unset
,然后将
unicode-bidi: plaintext
放在文本容器本身上。所以看来 Firefox 可能有不同的默认值 - Chrome 似乎默认为
unicode-bidi: normal
,而 Firefox 似乎默认为
unicode-bidi: isolate
,并且隔离容器中可能有
plaintext
元素会导致 Firefox 中的行为,但甚至不会在 Chrome 中当我使用 Firefox 的默认样式时。

因此,CSS 默认值的差异似乎与 Firefox 如何处理嵌套在不同

unicode-bidi
值的其他元素中的微妙错误相结合,但手动取消设置应该可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.