html - 有没有办法在 :nth-child(n)? 中使用 "n"值

标签 html css css-selectors

我想创建折叠效果。

Fiddle

有4张蓝卡,所以我创建了4个类来设置位置。我想让它更聪明,以防超过 4 张卡片。在 CSS 中,我试过了。

.card:nth-child(n){
    position: absolute;
    left: calc(n*10)px;
    top: calc(n*10)px;
}

但是,它不起作用。有办法吗?

最佳答案

CSS 不支持变量。您可以使用 Less/SASS 循环并将其定义为 n 到某个值,但这会多次输出几乎相同的 CSS。这是 Codepen示例。

支持最多 10 张卡片的 SCSS 代码:

$n: 10;

@for $i from 1 through $n {
  .card:nth-child(#{$i}) {
    position: absolute;
    left: 10px * $i;
    top: 10px * $i;
  }
}

但是你确定你的做法是正确的吗?也许您想退后一步,寻找不同的方法。因为这仍然不能动态扩展,所以您必须预测或限制 n 为某个值。如果您选择较大的 n,则会产生较大的 CSS 文件,这意味着加载时间会更长。

关于html - 有没有办法在 :nth-child(n)? 中使用 "n"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28002684/

相关文章:

javascript - 如何在 HTML 中包含 jQuery

CSS:为表格中的选定行设置颜色

html - 嵌套表不占用父 td 的 100% 高度

css - 此类以 css 为目标的类有什么区别?

css - 如何为输入设置 CSS 规则,除了一种类型

html - 仅在 Firefox 中由于填充而导致链接中断

html - 在 rails 中定义 anchor 标记的正确方法是什么?

javascript - 如何复制手动(未)选中复选框的状态?

jquery - 当 <ul> 具有特定类时,将 ID 添加到它 - onclick jQuery

html - CSS 选择器在不是第一个选择器的地方添加 'before' 内容