【发布时间】:2012-12-30 05:02:56
【问题描述】:
我试图允许列中的元素是行中唯一或第一项的情况(给它适当的边距),并添加了 .first、.only 和 .firstOnly 类。有没有办法合并参数 mixin 中提供的值来定义(或更改)变量?
$colCount: 2;
$colSpan: 1;
$gutter: 4%;
$width: $colSpan * ((100% - $gutter) / $colCount);
@mixin width($colCount: 2, $colSpan: 1, $gutter: 4%) {
$width: $colSpan * ((100% - $gutter) / $colCount);
}
@mixin columns($colCount: 2, $colSpan: 1, $gutter: 4%) {
@content;
@include width() {
width: $width;
}
&.first {
@include first();
}
&.only {
@include only();
}
&.firstOnly {
@include firstOnly();
}
}
@mixin first($colCount: 2, $colSpan: 1, $gutter: 4%) {
margin-left: 100% - $width;
}
@mixin only($colCount: 2, $colSpan: 1, $gutter: 4%) {
margin-left: 100% - (2 * $width) - (2 * $gutter);
}
@mixin firstOnly($colCount: 2, $colSpan: 1, $gutter: 4%) {
margin-left: 100% - $width - $gutter;
margin-right: 100% - $width;
}
【问题讨论】:
-
仅供参考,如果您计划在未来使用 Compass,您将会遇到命名冲突。 Columns 是供应商前缀 CSS 列的 mixin 的名称(请参阅compass-style.org/reference/compass/css3/columns/#mixin-columns)