[class^="getMenu"] { top: calc((attr(class, numeric)-1) * 50px); }这段代码没有起效果
时间: 2024-03-03 18:53:07 浏览: 64
记录微信小程序 height: calc(xx – xx);无效问题
5星 · 资源好评率100%
这段代码可能没有起效果是因为其中使用了一个并不存在的CSS属性`attr()`,导致了整个规则的失效。正常情况下,`attr()`函数是用于获取元素属性值的,但它只能在某些属性中使用,比如content属性。而在top属性中,是不能使用`attr()`函数的,所以这段代码会被浏览器忽略掉,从而没有起效果。
如果想要实现类似的效果,可以考虑使用CSS变量(即custom property),例如:
```
[class^="getMenu"] {
--menu-index: calc(1em * (parseInt(attr(class, 'numeric')) - 1));
top: var(--menu-index);
}
```
这里使用了一个自定义属性`--menu-index`来保存计算出来的top值,然后在top属性中使用了`var()`函数来引用这个自定义属性。这样就可以实现正确的效果了。
阅读全文