【问题标题】:Forcing Right to Left Text强制从右到左文本
【发布时间】:2011-12-13 09:16:07
【问题描述】:

我必须在 html 中以从右到左的顺序显示英语和阿拉姆语文本的集合。文本被分成类似于下面示例的短语,并且 Aramaic 的字体不是 unicode 字体(我不能使用 unicode 字体)因此浏览器将文本解释为所有西方文本,因此留给正确,即使我已经指定了段落 DIR="RTL"。

括号内的部分仍然需要按照括号内的顺序从左到右,但整个文本的顺序需要定向,因此第一个括号组位于页面右侧,下一组位于页面右侧等等。

在这个例子中,左边第一个括号组需要在右边第一个。

"1   ( the beginning, In the Origin, at the origin ) tysrb ( a son, The Son, son ) arb ( God, of God, The God ) ahla  ty ( Heaven, the heavens, the Heavens ) ayms "

当浏览器认为它是从左到右的西方文本时,我如何告诉浏览器不在括号中的文本将被视为从右到左的 unicode 文本。

有没有一种方法可以告诉浏览器将我拥有的特定 True Type 希伯来语字体视为从右到左的字体,然后在那里打破文本方向?

【问题讨论】:

  • 这会是什么样子?你能画个简单的图吗?
  • ‏‎‎(God)‎ ahla ( created)‎ arb‎ ( In the Origin )‎ tysrb .. {从这里阅读}

标签: html


【解决方案1】:

如果我理解正确,您需要使用 bdo (bidi override) 标记强制方向:

<p dir=rtl>
<bdo dir=rtl>
"1 <bdo dir=ltr>( the beginning, In the Origin, at the origin )</bdo> tysrb
<bdo dir=ltr>( a son, The Son, son )</bdo> arb
<bdo dir=ltr>(  God, of God, The God )</bdo> ahla  ty  
<bdo dir=ltr>( Heaven, the heavens, the Heavens )</bdo> ayms "
</bdo>
</p>

dir 属性本身(或 CSS 中的 direction 属性)基本上只影响方向中性文本的书写方向。拉丁字母具有从左到右的固有方向性,因此您需要覆盖。

如果您在“(”之后和“)”之前使用空格,请使空格保持不间断(如果需要,请使用 U+00A0,作为参考 &amp;nbsp;),以防止括号从封闭的文本中分离出来(这在 RTL 写作中尤其重要)。

【讨论】:

  • 效果很好,非常感谢。我现在可以很开心地将代码添加到我的 300,000 行文档中......感谢您的帮助。
【解决方案2】:

您可以使用 CSS direction 属性。

【讨论】:

    【解决方案3】:

    尝试关注。

    对于 HTML4

    <Q lang="he" dir="rtl">...a Hebrew quotation...</Q>
    

    推荐http://www.w3.org/TR/html4/struct/dirlang.html

    对于 HTML5

    <span dir=rtl>PURPLE PIZZA</span>
    

    推荐http://annevankesteren.nl/2010/11/html5-bidirectional-text

    【讨论】:

      【解决方案4】:

      您可以在 CSS 中使用 direction 属性,或者在 HTML 代码中放置 dir 属性。

      #LeftSide {
       direction: ltr;
       }
       #RightSide {
       direction: rtl;
        }
      

      【讨论】:

        猜你喜欢
        • 2016-02-01
        • 2016-01-15
        • 2011-02-03
        • 1970-01-01
        • 2018-01-05
        • 2015-07-04
        • 2013-12-16
        • 2012-05-27
        相关资源
        最近更新 更多