您可以使用此代码来实现你想要的结果
@function do_something($list, $args...) {
@each $mini-list in $args {
$value: nth($mini-list, 2);
$position: nth($mini-list, 1);
@if $position == top {
$list: set-nth($list, 1, $value);
}
@else if $position == right {
$list: set-nth($list, 2, $value);
}
@else if $position == bottom {
$list: set-nth($list, 3, $value);
}
@else if $position == left {
$list: set-nth($list, 4, $value);
}
}
@return $list;
}
该功能可用于在速记改变单个或多个位置值如下所示
$standardPadding: 4px 2px 1px 2px;
//change both top and bottom values
$standardPadding: do_something($standardPadding, top 18px, bottom 15px);
h2 {
border-width: $standardPadding; //returns 18px 2px 15px 2px
}
h3 {
//changes only top value
border-width: do_something($standardPadding, top 12px); //returns 12px 2px 15px 2px
}
希望这会有所帮助。
感谢@Deepak Bandi提示,但你的回答似乎没有解决我的问题。我想要一些可以覆盖现有速记的一部分 – ntahoang
很高兴它帮助了你.. :) –