Goal:成功地将变量作为参数传递给第n个子项.在下面的例子中,第三行应该变成绿色.

Problem:当前该参数作为变量被忽略.

这有可能吗?如果是,我需要改变什么?

Example Code:

:root {
  --n: 3;
}
div p:nth-child(var(--n)) {
  background: green;
  padding: 10px;
}
<div>
  <p>a</p>
  <p>b</p>
  <p>c</p>
</div>

推荐答案

唯一可以使用CSS custom properties的地方(这是not个"变量"!)是在declarations,在:之后.这也意味着不幸的是,您不能在 Select 器或媒体查询中使用这些自定义属性.

这也是为什么人们真的应该停止称它们为CSS"变量"的原因.

但是,您可以使用Javascript操作样式:

const dynamicStyles = document.getElementById('dynamicStyles');

const n = getComputedStyle(document.documentElement).getPropertyValue('--n');

dynamicStyles.textContent = `
div p:nth-child(${n}) {
  background: green;
  padding: 10px;
}
`;
:root {
  --n: 3;
}
<style id="dynamicStyles"></style>
<div>
  <p>a</p>
  <p>b</p>
  <p>c</p>
</div>

Css相关问答推荐

如何使用css::Part()定位Web组件shadowDOM中的第N个元素

如何为FLEX方向编写响应式的CSS

如何在点击时停止动画并将其返回到第一帧?

用两步函数内插的css动画值

如何使用混合混合模式更改动画背景上的文本 colored颜色

如何为 MUI Slider 字段中 markLabel 的第一个和最后一个实例提供边距?

Vue3 组合 api 中的对象值样式

如何有条件地设置元素的字体大小,只有在未明确设置父字体大小(即字体大小为继承)的情况下?

弹性布局溢出时的换行符

为什么我的 CSS 转换在 React 18 中不起作用

如何在变量中插入 SCSS 变量?

做一个像CodeSandbox的console那样的可拖拽的split panel

如何简化CSS?

不同的背景 colored颜色 取决于 URL

用于替代渲染的 CSS 嵌套

当我在几个月之间更改时,有什么方法可以在react-dates-range上添加淡入淡出或幻灯片效果?

创建 CSS 全局变量:样式表主题管理

单选按钮和标签显示在同一行

更改 FontAwesome 图标的字体粗细?

为什么 CSS 中的光标:指针效果不起作用