【发布时间】:2018-07-09 13:41:54
【问题描述】:
我的 sass 文件中有这个 mixin 函数,每次使用它时我都想从中计数。每次计数器需要增加 1,所以正确的值会相应地改变。
问题是我有一个未排序的列表,其中包含未知数量的元素。列表项可以是某种类型,如果是,它们需要在视图中以完全不同的方式放置。我想通过添加position: absolute 然后添加动态右值(因此它们不会重叠)将它们与站点的右上角对齐。
我不知道我的方法是否正确,但我的问题是如何动态更改 $item-number 变量,然后稍后引用该值?
$item-number: 1 !default;
@function times($value1, $value2) {
@return $value1 * $value2;
}
@function plus($value1, $value2) {
@return $value1 + $value2;
}
@mixin child($n) {
$item-number: plus($n, 1);
&:nth-child(#{$n}){
right: times(50px, $n) !important;
}
}
li {
@include media-breakpoint-up(lg) {
position: absolute;
top: -30px;
right: 0;
@include child($item-number);
}
}
【问题讨论】:
-
Sass 不能满足你的要求——它对你的 HTML 没有任何了解。然而,可能还有另一种方式。你说这些项目是“某种类型的”——它们有我们可以使用的唯一类或选择器吗?
-
是的,假装 li 是班级。列表项的类型分离已经实现。我需要的是一个动态的正确值
-
对不起,你能发布一些示例 HTML 吗?它可能会帮助我回答这个问题。
-
HTML 只是 ul 标签内的一堆 li。其他一切似乎与这个问题无关
-
也许我误解了:您最初的描述暗示只有一些
ul中的li项目应该在右上角对齐。这些项目需要一个唯一的类或属性,以便我们可以定位它们并忽略其他普通的li项目。