编辑:我试图实施 user1737909 的建议。使用类(即,.pie.size-{size}:BEFORE
)而不是属性选择器(即,.pie[data-value={size}]:BEFORE
)已经让我通过了第一步,并且不会阻止加载 .css 文件。不幸的是,由于难以将字符串连接到手写笔中的变量,我无法设置旋转量。以下都不起作用。什么是正确的语法?
transform rotate(size+1+'deg')
transform rotate({size}+1+'deg')
foo = size+1+'deg'
transform rotate(foo)
bar = 'rotate('+size+1+'deg)'
transform bar
-webkit-transform bar
如果做不到这一点,是否有人对制作 css/html 仪表有任何想法?
我正在 CSS 中制作一个径向仪表,它将显示在 mixin 中的每个帖子上。我以这段代码在 CSS 中制作饼图为例。设置饼图楔形的值就像更改以下代码中的“数据值”一样简单:
<div class="pie" data-start="0" data-value="30"></div>
不幸的是,代码对应于静态 css:
.pie[data-value="30"]:BEFORE {
-moz-transform: rotate(31deg); /* Firefox */
-ms-transform: rotate(31deg); /* IE */
-webkit-transform: rotate(31deg); /* Safari and Chrome */
-o-transform: rotate(31deg); /* Opera */
transform:rotate(31deg);
}
这适用于静态插图,但我的页面将有各种不同大小的楔形。最简单的解决方案是为所有 360 度创建新条目,但这似乎是一个糟糕的主意。
我的想法是在我设置“数据值”的同时为翡翠混合中的每个仪表定义样式。就像是:
pieStyle = '-moz-tranform: rotate('+ degreesPlusOne + 'deg); -ms-tranform: rotate('+ degreesPlusOne + 'deg); -o-tranform: rotate('+ degreesPlusOne + 'deg); -webkit-tranform: rotate('+ degreesPlusOne + 'deg); tranform: rotate('+ degreesPlusOne + 'deg)'
.pie2(data-start='0', data-value=degrees, style=pieStyle)
不幸的是,要设置的样式不是'.pie',而是'.pie:BEFORE'。有什么方法可以在 mixin 中使用这个伪元素设置样式吗?
或者有没有办法在手写笔中解决这个问题?我正在开发的网站是一个新闻聚合器,任何用户都会看到几十个甚至上百个这样的仪表。在这样的环境中,我会在不太长的时间内将所有 360 集作为 css 的一部分简单地传输并在将来在缓存中引用它们会更好吗?
提前致谢。