有什么方法可以只使用CSS生成给定范围内的随机数吗?
Is there any way to generate a random number within a given range using only CSS?
例如:
div {
margin-left: random(-100, 100);
}
不要认为 CSS 有这种能力,但 LESS 会有所帮助
目前无法在纯 CSS 中执行此操作,但是如果您使用的是 CSS 预处理器,例如 LESS,那么您可以执行以下:
@randomMargin: `Math.round(Math.random() * 100)`;
div {
margin-left: ~'@{randomMargin}px';
}
之所以有效,是因为 LESS will evaluate JavaScript expressions。
如果你想把它分成随机的mixin/function,你可以使用:
.random(@min, @max) {
@random: `Math.round(Math.random() * (@{max} - @{min}) + @{min})`;
}
div {
.random(-100, 100);
margin-left: ~'@{random}px';
}
每次都会使用不同的 margin-left
值进行编译:
div {
margin-left: 18px;
}
但是,我不确定这在生产环境中有多实用,因为您的 CSS 应该 已经 compiled/minified 而不是编译在飞。因此,您应该直接使用 JavaScript 来实现这一点。
例如:
div {
margin-left: random(-100, 100);
}
不要认为 CSS 有这种能力,但 LESS 会有所帮助
目前无法在纯 CSS 中执行此操作,但是如果您使用的是 CSS 预处理器,例如 LESS,那么您可以执行以下:
@randomMargin: `Math.round(Math.random() * 100)`;
div {
margin-left: ~'@{randomMargin}px';
}
之所以有效,是因为 LESS will evaluate JavaScript expressions。
如果你想把它分成随机的mixin/function,你可以使用:
.random(@min, @max) {
@random: `Math.round(Math.random() * (@{max} - @{min}) + @{min})`;
}
div {
.random(-100, 100);
margin-left: ~'@{random}px';
}
每次都会使用不同的 margin-left
值进行编译:
div {
margin-left: 18px;
}
但是,我不确定这在生产环境中有多实用,因为您的 CSS 应该 已经 compiled/minified 而不是编译在飞。因此,您应该直接使用 JavaScript 来实现这一点。