我想要实现的只是sass中@extend函数的一个更短的版本。
我有一堆的类,我用在我的网站上的布局。
示例:
.grid1 {width:40px;}
.grid2 {width:80px;}
.grid3 {width:120px;}
.grid4 {width:160px;}
.grid5 {width:200px;}我知道您可以使用extend函数在整个站点中删除重复的css,包括:
.class {@extend .grid1}
它的输出
.class {width:40px}
我想要的是一些更简单的东西。
.class{grid(1)};
以下是我尝试过的:
@function grid($n){
@extend unquote(".grid#{$n}");
}很明显这不管用,有什么想法吗?
发布于 2013-06-27 06:24:02
SASS中的@functions用于操作值。因此,这将不能工作的原因是,您正在尝试返回选择器和声明块。这就是mixins的用途。
这样做的一种方法是:
$grids: ((5, 40), (10, 80), (15, 120), (20, 160));
@mixin grid($n, $fluid: false) {
@if($fluid) {
width: nth(nth($grids, $n), 1) + "%";
} @else {
width: nth(nth($grids, $n), 2) + "px";
}
}
.foo {
@include grid(3);
}
.bar {
@include grid(4, true);
}它产生:
.foo {
width: "120px"; }
.bar {
width: "20%"; }https://stackoverflow.com/questions/17335623
复制相似问题