你能分享一些支持多语言网站的rtl方向的技巧吗?
除了文本方向之外,是否需要进行任何更改,例如菜单标记?rtl CSS应该包含在单独的文件中(如“layout-rtl.css”),还是应该将“rtl”类添加到body标记中?我想知道这样的东西。
我在这里找到了一些提示(链接),但我真的很希望有人亲身提供建议(已经推出了rtl语言的网站的建议)。
你能分享一些支持多语言网站的rtl方向的技巧吗?
除了文本方向之外,是否需要进行任何更改,例如菜单标记?rtl CSS应该包含在单独的文件中(如“layout-rtl.css”),还是应该将“rtl”类添加到body标记中?我想知道这样的东西。
我在这里找到了一些提示(链接),但我真的很希望有人亲身提供建议(已经推出了rtl语言的网站的建议)。
由于我经常在双向网站上工作,我将告诉你在这方面的最佳实践(从我的角度来看),这几乎就是 @Haim Evgi
在 css 预处理器方面提到的。
因此,我制作了以下工具来帮助简化这个过程,你可以在里面找到更多详细信息。
我将演示如何使用 Sass 预处理器和我的工具 bi-app-sass
来做到这一点,但你也可以参考前面提到的 Less 版本。
简单地说,思路是创建三个文件(基本上,它们可以按需增加)。
app-ltr.scss // ltr interface to be compiled
app-rtl.scss // rtl interface
_app.scss // private file where you will write your styles (won't be compiled)
app-rtl.scss
文件中,包含以下内容:@import 'bi-app-rtl';
@import 'app';
app-ltr.scss
。@import 'bi-app-ltr';
@import 'app';
现在你需要做的就是在_app.scss
中编写你的样式,但唯一的区别是,任何可以使用right/left
值的属性,你需要使用以下自定义Mixin进行编写。
.foo {
display: block;
@include float(left);
@include border-left(1px solid white);
}
一旦你编译它们,你将拥有两个不同版本的样式表 app-rtl.css
和 app-ltr.css
,然后你就完成了!
希望这能帮到你 :)
我们所做的是在 PHP 中声明一些参数,例如:
SIDE : right
OPOSIDE : left
DIR : rtl
OPODIR : ltr
float : {SIDE}
...
我们使用 PHP 生成真正的 CSS 文件(替换所有需要替换的内容),然后网站使用属于它自己的 CSS 文件。
现在你可以使用 CSS 框架,例如:LESS、BLUEPRINT、XCC。