【发布时间】:2020-11-04 22:25:35
【问题描述】:
我有一个组件,例如:
const pretty = styled.div`
--nth-child: 5n;
--size: 20px; //css variable
width: var(--size);
&:nth-child(var(--nth-child)) {
//...styles...
}
@media (max-width: 768px) {
//overriding
--size: 12px;
--nth-child: 3n;
}
`
问题是如何在这个地方插入css变量?
&:nth-child(var(--nth-child)) {
//...styles...
}
如果我理解正确,这是不可能的,所以很高兴找到另一个解决方案
注意:我不能使用 JS 变量
更新:
编辑器还突出显示了那里的错误:
所以我尝试了这个,但这也不起作用:
&:nth-child(${css`var(--nth-child)`}) {
margin-right: 0;
}
【问题讨论】:
-
将自定义属性更改为
5n而不是5? -
@evolutionxbox,我试过了,还不行
-
可悲的是不可能的。 smashingmagazine.com/2018/05/…
-
@evolutionxbox,正如我所想。很遗憾,styled-components 对此没有任何破解
-
我不知道他们怎么可能......这不是 JS 的事情。 CSS“变量”是在运行时计算的,而不是像 SASS 或 LESS 这样的简单字符串替换。
标签: javascript css reactjs styled-components css-variables