Sass扩展参数或解决方法
我正在做一个新的项目,将在两种语言。阿拉伯文和英文 我将在这个项目上使用SASS,在我开始做任何开发之前,我想确保我使用了关于浮动和RTL/LTR的最佳方法 我想知道是否可能有扩展SASS函数的参数 我的HTML的主体将有一个类,具体取决于用户语言。基于该类,如果EN,我想向左浮动,如果AR,我想向右浮动。为此,我这里有一个快速草稿: 有一个jQuery位可以在单击时更改类 不幸的是,据我所知,该范围不接受任何论点。我怎样才能做到这一点,这取决于主体类是否使用了“marginleft”、“marginright”或“padding left”、“padding right” 我的想法是:Sass扩展参数或解决方法,sass,Sass,我正在做一个新的项目,将在两种语言。阿拉伯文和英文 我将在这个项目上使用SASS,在我开始做任何开发之前,我想确保我使用了关于浮动和RTL/LTR的最佳方法 我想知道是否可能有扩展SASS函数的参数 我的HTML的主体将有一个类,具体取决于用户语言。基于该类,如果EN,我想向左浮动,如果AR,我想向右浮动。为此,我这里有一个快速草稿: 有一个jQuery位可以在单击时更改类 不幸的是,据我所知,该范围不接受任何论点。我怎样才能做到这一点,这取决于主体类是否使用了“marginleft”、“mar
.content {
%marginSwap(10px 0 0 10px);
}
在语言类a中的某个地方,混合使用边距左值和边距右值交换边距左值
类似于mixin,但依赖于父类,如extend:
@mixin marginSwap($top, $right, $bottom, $left) {
margin-top:$top;
margin-right:$left; // Left instead of right
margin-bottom:$bottom;
margin-left:$right;
}
希望您能从我的JSFIDLE中更好地理解我可以推荐使用lang属性吗?如果需要,您可以同样轻松地使用mixin而不是extends 不使用类,您可以在您认为合适的任何祖先元素上设置lang属性(如果您愿意,它可以一直位于html或body标记上)
对于我的SCS来说,这是一个很好的选择,但是边距和填充物呢?你会怎么处理这些?非常感谢!我添加了一个Marginsome的示例!我会做一些性能测试。我想知道媒体网站的css文件如何使用这种技术,而不是为每种语言创建两个单独的css版本。
@mixin marginSwap($top, $right, $bottom, $left) {
margin-top:$top;
margin-right:$left; // Left instead of right
margin-bottom:$bottom;
margin-left:$right;
}
@mixin margin($v) {
@if length($v) == 4 {
margin: $v;
&:lang(ar) {
margin: nth($v, 1) nth($v, 4) nth($v, 3) nth($v, 2);
}
} @else {
margin: $v;
}
}
@mixin margin-right($v) {
margin-right: $v;
&:lang(ar) {
margin-left: $v;
}
}
:lang(en) {
direction: ltr;
}
:lang(ar) {
direction: rtl;
}
%float-left {
//&:lang(en) {
float: left;
//}
&:lang(ar) {
float: right;
}
}
%align-left {
//&:lang(en) {
text-align: left;
//}
&:lang(ar) {
text-align: right;
}
}
.content {
width:500px;
margin:20px auto;
padding:20px;
background:#e5e5e5;
overflow:auto;
h1, p {
margin:0;
}
.thumbnail {
@extend %float-left;
//@include margin(0 20px 0 0);
@include margin-right(20px);
}
.description {
@extend %float-left;
@extend %align-left;
}
}
<div lang="en"></div>