带RTL的无序内联列表

时间:2012-11-28 14:03:23

标签: html

奇怪的多语言问题:

我有一个<ul><li>项,与display:inline一起显示。

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

3 个答案:

答案 0 :(得分:1)

更改方向只会将项目移动到屏幕的右侧或左侧。它不会更改ul内项目的ORDER。 要更改顺序,您可以使用JQuery,如下所示:

ul = $('#my-ul'); // your parent ul element
ul.children().each(function(i,li){ul.prepend(li)})

答案 1 :(得分: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'。”

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

答案 2 :(得分:0)

也许你添加?

​ul li {
    float:right;
}​

但如果涉及订购列表,则应使用ol代替ul