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

时间:2018-07-29 13:12:34

标签: html css dom right-to-left

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

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

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

到目前为止,我设法使用此CSS类(在知道了内容语言的情况下,并使用一个标志将该类添加到div中)解决了该问题:

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

使用这些括号可以正确显示,到目前为止效果很好。

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

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

1 个答案:

答案 0 :(得分:2)

这是我的尝试:

理论: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" -->