循环数组 sass 并创建 css
Loop array sass and create css
我在 sass 中有一个这样的函数
$positions: left top bottom right;
$short-paddings: lp tp bp rp;
@each $current-position in $positions {
$i: index($positions, $current-position);
@for $x from 1 through 2 {
@each $current-short in $short-paddings{
.#{$current-short}-#{$x} {
padding-#{$current-position}: #{$x}px !important;
}
}
}
}
当我输出时,我得到了这个
.pl-1 {
padding-left: 1px !important;
}
.pt-1 {
padding-left: 1px !important;
}
.pb-1 {
padding-left: 1px !important;
}
.pr-1 {
padding-left: 1px !important;
}
.pl-2 {
padding-left: 2px !important;
}
.pt-2 {
padding-left: 2px !important;
}
.pb-2 {
padding-left: 2px !important;
}
.pr-2 {
padding-left: 2px !important;
}
.pl-1 {
padding-top: 1px !important;
}
.pt-1 {
padding-top: 1px !important;
}
.pb-1 {
padding-top: 1px !important;
}
.pr-1 {
padding-top: 1px !important;
}
.pl-2 {
padding-top: 2px !important;
}
.pt-2 {
padding-top: 2px !important;
}
.pb-2 {
padding-top: 2px !important;
}
.pr-2 {
padding-top: 2px !important;
}
.pl-1 {
padding-bottom: 1px !important;
}
.pt-1 {
padding-bottom: 1px !important;
}
.pb-1 {
padding-bottom: 1px !important;
}
.pr-1 {
padding-bottom: 1px !important;
}
.pl-2 {
padding-bottom: 2px !important;
}
.pt-2 {
padding-bottom: 2px !important;
}
.pb-2 {
padding-bottom: 2px !important;
}
.pr-2 {
padding-bottom: 2px !important;
}
.pl-1 {
padding-right: 1px !important;
}
.pt-1 {
padding-right: 1px !important;
}
.pb-1 {
padding-right: 1px !important;
}
.pr-1 {
padding-right: 1px !important;
}
.pl-2 {
padding-right: 2px !important;
}
.pt-2 {
padding-right: 2px !important;
}
.pb-2 {
padding-right: 2px !important;
}
.pr-2 {
padding-right: 2px !important;
}
但是有一些错误 css 我需要输出的是我在最后 css 我会有一些东西 =this
.pl-1 {
padding-left: 1px !important;
}
.pt-1 {
padding-top: 1px !important;
}
.pb-1 {
padding-bottom: 1px !important;
}
.pr-1 {
padding-right: 1px !important;
}
.pl-2 {
padding-left: 2px !important;
}
.pt-2 {
padding-top: 2px !important;
}
.pb-2 {
padding-bottom: 2px !important;
}
.pr-2 {
padding-right: 2px !important;
}
知道我哪里做错了吗?
第一个循环 @each $current-position in $positions
导致了您的问题。你可以删除它并用地图实现你想要的:
$short-paddings: (
top: 'pt',
left: 'pl',
bottom: 'pb',
right: 'pr'
);
@for $i from 1 through 2 {
@each $position, $prefix in $short-paddings {
.#{$prefix}-#{$i} {
padding-#{$position}: #{$i}px !important;
}
}
}
我在 sass 中有一个这样的函数
$positions: left top bottom right;
$short-paddings: lp tp bp rp;
@each $current-position in $positions {
$i: index($positions, $current-position);
@for $x from 1 through 2 {
@each $current-short in $short-paddings{
.#{$current-short}-#{$x} {
padding-#{$current-position}: #{$x}px !important;
}
}
}
}
当我输出时,我得到了这个
.pl-1 {
padding-left: 1px !important;
}
.pt-1 {
padding-left: 1px !important;
}
.pb-1 {
padding-left: 1px !important;
}
.pr-1 {
padding-left: 1px !important;
}
.pl-2 {
padding-left: 2px !important;
}
.pt-2 {
padding-left: 2px !important;
}
.pb-2 {
padding-left: 2px !important;
}
.pr-2 {
padding-left: 2px !important;
}
.pl-1 {
padding-top: 1px !important;
}
.pt-1 {
padding-top: 1px !important;
}
.pb-1 {
padding-top: 1px !important;
}
.pr-1 {
padding-top: 1px !important;
}
.pl-2 {
padding-top: 2px !important;
}
.pt-2 {
padding-top: 2px !important;
}
.pb-2 {
padding-top: 2px !important;
}
.pr-2 {
padding-top: 2px !important;
}
.pl-1 {
padding-bottom: 1px !important;
}
.pt-1 {
padding-bottom: 1px !important;
}
.pb-1 {
padding-bottom: 1px !important;
}
.pr-1 {
padding-bottom: 1px !important;
}
.pl-2 {
padding-bottom: 2px !important;
}
.pt-2 {
padding-bottom: 2px !important;
}
.pb-2 {
padding-bottom: 2px !important;
}
.pr-2 {
padding-bottom: 2px !important;
}
.pl-1 {
padding-right: 1px !important;
}
.pt-1 {
padding-right: 1px !important;
}
.pb-1 {
padding-right: 1px !important;
}
.pr-1 {
padding-right: 1px !important;
}
.pl-2 {
padding-right: 2px !important;
}
.pt-2 {
padding-right: 2px !important;
}
.pb-2 {
padding-right: 2px !important;
}
.pr-2 {
padding-right: 2px !important;
}
但是有一些错误 css 我需要输出的是我在最后 css 我会有一些东西 =this
.pl-1 {
padding-left: 1px !important;
}
.pt-1 {
padding-top: 1px !important;
}
.pb-1 {
padding-bottom: 1px !important;
}
.pr-1 {
padding-right: 1px !important;
}
.pl-2 {
padding-left: 2px !important;
}
.pt-2 {
padding-top: 2px !important;
}
.pb-2 {
padding-bottom: 2px !important;
}
.pr-2 {
padding-right: 2px !important;
}
知道我哪里做错了吗?
第一个循环 @each $current-position in $positions
导致了您的问题。你可以删除它并用地图实现你想要的:
$short-paddings: (
top: 'pt',
left: 'pl',
bottom: 'pb',
right: 'pr'
);
@for $i from 1 through 2 {
@each $position, $prefix in $short-paddings {
.#{$prefix}-#{$i} {
padding-#{$position}: #{$i}px !important;
}
}
}