是否有与此 SASS 功能等效的 LESS?
Is there a LESS equivalent to this SASS functionality?
我正在研究一些东西,其中包括媒体查询和大量重复代码 - 即使使用混合。
我发现了一个包含此 SASS 代码的网站:
html{
@include responsive("font-size", 11px,
(
600px: 12px,
800px: 13px,
1180px: 14px,
1300px: 15px,
1750px: 16px,
1900px: 17px,
2100px: 18px,
2400px: 19px
)
);
}
不幸的是,没有对 "responsive" 的进一步引用,所以我对此了解不多,但我相信目标是使用规则创建媒体查询输出。
我知道 LESS 中的规则集,但是是否可以像他们在这里完成的那样链接规则集?
提前致谢。
对于 Less,这可能是您最好的选择。基本上,我们使用 2D 数组列表(具有媒体大小和 属性 值)作为 mixin 的参数。请参考内联评论以获得进一步的解释。
@array: 600px 12px, 700px 13px, 800px 14px; /* 2D array with media size & value */
.responsive(@property; @defaultValue; @array){
@{property}: @defaultValue; /* default setting*/
.loop-media-query(@index) when (@index > 0){ /* loop for media query */
@mediaSize: extract(extract(@array,@index), 1); /* first array val is media size */
@font-size: extract(extract(@array,@index), 2); /* second array val is property value */
@mediaQuery: ~"(min-width: @{mediaSize})"; /* form the media query */
@media @mediaQuery{ /* output the settings */
@{property}: @font-size;
}
.loop-media-query(@index - 1);
}
.loop-media-query(length(@array));
}
.output{
.responsive(font-size; 11px; @array);
}
已编译CSS:
.output {
font-size: 11px;
}
@media (min-width: 800px) {
.output {
font-size: 14px;
}
}
@media (min-width: 700px) {
.output {
font-size: 13px;
}
}
@media (min-width: 600px) {
.output {
font-size: 12px;
}
}
我正在研究一些东西,其中包括媒体查询和大量重复代码 - 即使使用混合。
我发现了一个包含此 SASS 代码的网站:
html{
@include responsive("font-size", 11px,
(
600px: 12px,
800px: 13px,
1180px: 14px,
1300px: 15px,
1750px: 16px,
1900px: 17px,
2100px: 18px,
2400px: 19px
)
);
}
不幸的是,没有对 "responsive" 的进一步引用,所以我对此了解不多,但我相信目标是使用规则创建媒体查询输出。
我知道 LESS 中的规则集,但是是否可以像他们在这里完成的那样链接规则集?
提前致谢。
对于 Less,这可能是您最好的选择。基本上,我们使用 2D 数组列表(具有媒体大小和 属性 值)作为 mixin 的参数。请参考内联评论以获得进一步的解释。
@array: 600px 12px, 700px 13px, 800px 14px; /* 2D array with media size & value */
.responsive(@property; @defaultValue; @array){
@{property}: @defaultValue; /* default setting*/
.loop-media-query(@index) when (@index > 0){ /* loop for media query */
@mediaSize: extract(extract(@array,@index), 1); /* first array val is media size */
@font-size: extract(extract(@array,@index), 2); /* second array val is property value */
@mediaQuery: ~"(min-width: @{mediaSize})"; /* form the media query */
@media @mediaQuery{ /* output the settings */
@{property}: @font-size;
}
.loop-media-query(@index - 1);
}
.loop-media-query(length(@array));
}
.output{
.responsive(font-size; 11px; @array);
}
已编译CSS:
.output {
font-size: 11px;
}
@media (min-width: 800px) {
.output {
font-size: 14px;
}
}
@media (min-width: 700px) {
.output {
font-size: 13px;
}
}
@media (min-width: 600px) {
.output {
font-size: 12px;
}
}