YUI是否支持RTL语言? (RTL:从右到左,如希伯来语或树胶)。

如果这样,如何? 我想显示一个菜单栏在不同的菜单项开始靠近右页边距,并向左走。

有帮助吗?

解决方案

有在锐2.x中为RTL语言没有支持我申请一个bug关于它在一年前,并得到了回应说,他们可能会在以后的版本中添加。 (我不能再找到了这个错误,因为他们切换到新的跟踪,抱歉。)希望他们增加了YUI 3.x的RTL的支持,但我还没有签出的预览版本(也可以找到他们提的加入RTL支持)。

这并不是说锐菜单不能做的RTL,但它需要多一点的工作,因为没有内置的支持。我不作任何权利要求,这种工程100%在所有浏览器,特别是没有IE。

首先,需要的菜单项流动相反的方向,并开始对页的相对侧。我相信这在大多数浏览器(除了IE6,当然,哎呀 - 该浏览器,你需要做的,我不记得回答一些额外的工作):

.yuimenubaritem { float: right; }

其次,需要MenuBar的子菜单流动相反的方向。您可以通过更改做到这一点的 submenualignment 的你的菜单配置属性:

// For the main submenu
new YAHOO.widget.MenuBar("id", { submenualignment: ["tr","br"] });

// You have to manually add all the Menus,
// so that you can set the submenualignment on each.
new YAHOO.widget.Menu("id", { submenualignment: ["tl","tr"] });

最糟糕的部分是试图让键盘事件才能正常工作,因为此时按右键可将光标往左走,反之亦然。要做到这一点,你必须劫持菜单栏的_onKeyDown()和改变它,这样,如果菜单栏设置RTL(存储这些信息在某处变种),它处理左/右有点不同。 (对不起,你要搞清楚这一个你自己的,但它应该是对按键开关的情况下简单的事情)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top