css - 基于静态变量从 Less 创建多个 CSS 文件

标签 css less right-to-left direction

我正在创建一个支持从右到左内容的国际化应用程序。

因此标准(LTR)将是:

div{
   padding-left:10px;
}

而 RTL 是:

div{
   padding-right:10px;
}

我能做的就是少用:

@left:right;

.div{
    padding-@{left}:10px;
}

这会产生:

.div {
  padding-right: 10px;
}

有没有办法为@left = right@left = left生成两个CSS文件?

例如我可以:

Styles.less

产生:

Styles.css

Styles.rtl.css

最佳答案

此文件名将是styles-rtl.less

@import "styles.less";

/*override variables */

@direction          :ltr;
@oposite-direction  :rtl;

@start-direction    :left;
@end-direction      :right;

@tr-direction       :-1;/*for manipulation transform*/

使用示例:

/*positions*/
position:absolute;

right:0;    
/*will be*/    
@{start-direction}:0;

/**************/

float:right;    
/*will be*/    
float:@start-direction;


/**************/
direction:rtl;    
/*will be*/
direction:@direction;

/*************/
transform:translateX(180px);
/*will be*/
transform:translateX(180px*@tr-direction);/*multiple by minus*/

关于css - 基于静态变量从 Less 创建多个 CSS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32764562/

相关文章:

javascript - 对输入使用自定义包装器 : pros and cons?

css - Google 字体 - CSS - 某些字符无法正常工作

html - 为什么固定元素不拉伸(stretch)到网格区域的整个宽度?

javascript - LESS 在线发布网站后动态样式表语言不起作用

javascript - 使用 JavaScript 或 jquery 实现箭头键

javascript - Masonry 可以用作 RTL(从右到左)方向吗

javascript - 如何以一定的透明度在文本上阅读更多内容?

css - 你能用代码修改外部样式表(less,sass)吗?

css - 在循环中如何将计算作为类名的一部分?

html - IE8 中的边框在从右到左的语言中看起来不正确