我有一组数据行,每行显示为(标签+值)的平铺。我把它们包装在一个div.tilemap-tile
<div class="tilemap">
<div class="tilemap-tile" ng-repeat="x in data | orderBy: 'value'">
<div class="data-label">{{x.label}}</div>
<div class="data-value">{{x.value}}</div>
</div>
</div>
我想在 Nx3 或 Nx4 样式的网格中显示这个 - (a)每行的标签以调色板中的不同颜色开头,并且(b)同一行中后续瓷砖的标签连续变暗。
我可以通过调整平铺属性来获得网格视觉效果
.tilemap-tile {
counter-reset: Z 0;
clear: both;
.tilemap-tile {
counter-increment: Z;
width: 33%;
display: table-cell;
float: left;
vertical-align: top;
height: 5em;
.data-label {
@include tile-bgcolor(red, counter(Z)); <<<<<<<<<<<<<<<<<<<<< PROBLEM
}
}
}
我正在苦苦挣扎的是如何设置data-label
. 我尝试了以下方法,但似乎counter
只能在contents
属性中使用。结果,下面的计算给出了一个 sass 错误。
@mixin tile-bgcolor($basecolor, $p) {
$c: darken($basecolor, ($p % 3) * 5%); <<<<<<<<< $p is not numeric
&::after { content: "(debug, tile# " $p; }; <<<<< shows values 1..N
background: $c;
foobar: $p; <<< shows in browser as "counter(Z)"
}
是否有任何其他 DRY 方法来跟踪“div.tilemap-tile”计数并在 bg-color 计算中使用它?
更新
我不知道如何回复“已经有答案”的链接,但虽然有帮助,但显然不是答案。请再次查看我的问题以了解两个具体要求。根据@cinnamon 的评论,我认为没有纯 SASS/CSS 的答案。