由于我在双向网站上做了很多工作,我会告诉你最好的实践(以我的观点),这几乎是 @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 值的属性都需要使用自定义mixins 来编写它们,如下所示..
.foo {
display: block;
@include float(left);
@include border-left(1px solid white);
}
编译它们后,您将拥有两个不同版本的样式表app-rtl.css 和app-ltr.css,您就完成了!
希望有所帮助:)