代码之家  ›  专栏  ›  技术社区  ›  roeygol

如何用RTL/LTR语言支持HTML DOM元素?

  •  1
  • roeygol  · 技术社区  · 6 年前

    我的系统中有几个页面,其中包括表(使用DIV构建),其中一个页面可能包含英语内容,另一个页面包含希伯来语或其他RTL语言。

    我的问题是,当这些列包含圆括号(主要是圆括号)时,它们会导致如下混合:

    )English (EN
    עברית (iw_IL)
    

    到目前为止,我使用这个CSS类(当内容语言已知,并使用一个标志将这个类添加到DIV时)解决了这个问题:

    .RTL:after {
        content: "\200E";
    }
    

    使用它,支架显示正确,目前为止还不错。

    现在,我需要一个跨应用程序解决方案,而不使用每个分区的标志,欢迎使用CSS解决方案或任何其他技术。

    我需要一个可以同时适用于两种内容(RTL和LTR语言)的解决方案。

    1 回复  |  直到 6 年前
        1
  •  2
  •   john c. j.    6 年前

    https://www.w3.org/International/articles/inline-bidi-markup/

    <body class="rtl">
        <style>
            .table { display: table; }
            .tr { display: table-row; }
            .td { display: table-cell; }
            .table, .tr, .td { border: 1px solid; border-collapse: collapse; }
            .rtl { direction: rtl; }
            .ltr { direction: ltr; }
        </style>
    
        <p>עבריתעבריתעבריתעברית</p>
        <p>עבריתעברית</p>
    
        <div class="table">
            <div class="tr">
                <div class="td ltr">
                    <p>English (EN)</p>
                    <p>dbdjk dk ddkj ddjh dj dhjd</p>
                </div>
                <div class="td">
                    <p><bdi>(iw_IL) עברית</bdi></p>
                    <p>עבריתעבריתעבריתעברית</p>
                </div>
            </div>
        </div>
    </body>
    

    <p><span dir="auto">(iw_IL) עברית</span></p> <!-- or dir="ltr" -->