根据文本更改列表方向

时间:2018-04-05 19:17:37

标签: html css

我有一个从用户输入生成的列表。列表的内容可以来自任何语言,包括RTL语言。

如何根据语言自动更改列表的方向?

我知道unicode-bidi适用于任何常规旧文本,direction属性无法像Dir属性那样获得“自动”值。

例如:

<ul>
  <li>english</li>
  <li>left to right</li>
</ul>

<ul>
  <li>עברית</li>
  <li>ימין לשמאל</li>
</ul>

只有css更改应该输出2列表一个浮动到左边,点到文本左边,反之亦然

3 个答案:

答案 0 :(得分:1)

您可以在html中的元素上设置lang属性。与unicode-bidi结合使用可以让你做你想做的事。

我不确定你要做什么,但这里有一个例子: https://jsfiddle.net/veytqdwx/9

答案 1 :(得分:0)

使用父div上的类来识别。如果语言类似于英语,则为父级分配一个类。由于您的内容是动态的,因此应该可以这样做。

<div class="english-menu">
   <ul> 
     ...
   </ul>
  ...</div>

然后风格在css中相应

.english-menu{
   float: left;
   ... //whatever else
}

答案 2 :(得分:0)

由于我还没有找到任何只使用css动态更改(并自动检查)的答案,

有效的第二个最佳选择是将dir="auto"添加到<ul><ol>,如下所示:

<ul dir="auto">
  <li></li>
  ...
</ul>

我刚刚问负责生成列表的人将其添加到他的c代码中,而unicode-bidi: plaintext; css规则仍然存在。

截至目前,我认为没有选择只使用css3