1

这里奇怪的多语言问题:

我有一个<ul>with<li>显示的项目display:inline

当我使用body{direction:rtl}样式指令时,这些项目不会改变顺序。
是否有任何技巧可以反转<li>RTL(例如阿拉伯语)语言支持的项目顺序?

4

3 回答 3

2

也许如果你添加?

​ul li {
    float:right;
}​

但如果涉及到排序列表,您应该使用ol而不是ul.

于 2012-11-28T14:07:15.617 回答
1

添加规则

ul { unicode-bidi: bidi-override; }

警告:根据浏览器的不同,这也可能导致像“1234”这样的字符串从右到左显示。您可能需要设置unicode-bidi: bidi-override; direction: rtl此类元素。

根据CSS 2.1规范,该direction属性“为 Unicode 双向算法指定块的基本写入方向以及嵌入和覆盖的方向(参见 'unicode-bidi')。此外,它还指定了表格列布局的方向,水平溢出的方向,在'text-align:justify'的情况下块中不完整的最后一行的位置。” 但内联框排序不受影响。后来,它补充说:

“要让 'direction' 属性影响内联元素的重新排序,'unicode-bidi' 属性的值必须是 'embed' 或 'override'。”</p>

这有点含糊,但上面的代码适用于现代浏览器(否则在处理方向性方面表现出许多差异)。

于 2012-11-28T17:43:31.407 回答
1

更改方向只会将项目移动到屏幕的右侧或左侧。它不会更改ul. 要更改顺序,您可以像这样使用JQuery

ul = $('#my-ul'); // your parent ul element
ul.children().each(function(i,li){ul.prepend(li)})
于 2012-11-28T14:07:48.077 回答