CSS可以是双向的,还是一个与脚本方向固有的样式表(RTL与LTR)?
即。一个和一个样式表可以用于从左到右(英语)和从右到左(希伯来语)的语言吗?
如果是这样,需要考虑哪些指导原则?
如果不是,如何将ltr样式表转换为rtl?
答案 0 :(得分:2)
我之前使用CSSJanus将ltr样式表转换为rtl。它作为一个命令行工具,这意味着我可以在每次构建应用程序时运行它,只需要维护一个版本的文件。转换将所有浮动:左转为浮动:右转(以及其他一些难以猜测的属性,如背景位置)。别忘了设定方向:ltr;在您的默认样式表中!
希望你能开始工作!
答案 1 :(得分:0)
您可以考虑采用iGoogle使用的方法,该方法有a set of special variables __BIDI_START_EDGE__, __BIDI_END_EDGE__, __BIDI_DIR__, and __BIDI_REVERSE_DIR__
。你像往常一样编写你的CSS规则,除了写一些像margin-left之类的内容你写margin-__BIDI_START_EDGE__
。然后编写一些服务器端代码,其中包含样式表和方向(ltr或rtl),并根据需要使用值“left”,“right”,“ltr”和“rtl”填充变量。
这不允许您提供单个文件,但它非常强大,并且它的优势在于您不想翻转的任何内容都可以使用文字“左”或“右”来编写。< / p>
(参见this email from the OpenAjaxIDE mailing list,其中说“IBM的本地化专家对OpenSocial中的BIDI功能表示赞同”,并建议将其用于OpenAjax项目。)
答案 2 :(得分:0)
我不建议使用单个样式表来支持RTL和LTR样式。您将下载一个大型CSS文件,只在页面中使用一半。
虽然如果你想这样做,你可以在html标签中添加一个类,例如('rtl'和'ltr'),并在样式表中使用,如下所示:
.ltr .class {padding-left:10px;}
.rtl .class {padding-right:10px;}
您可以查看此tutorial以了解如何'RTL'LTR页面。