在 CSS 旋转函数中使用 CSS 变量

Posted

技术标签:

【中文标题】在 CSS 旋转函数中使用 CSS 变量【英文标题】:Using CSS variable in CSS rotate function 【发布时间】:2022-01-14 19:09:35 【问题描述】:

我正在开发雪人的 SVG 图像,并且我正在尝试使用变量来确定特定的事物。帽子上的吊带东西的颜色和围巾的颜色都是var(--maincolor)成功设置的。我遇到的问题是var(--armangle)

<path d="..." stroke="#442200" stroke- fill="none" transform="rotate(var(--armangle))" transform-origin="32.5% 60%"/>

为什么不被接受?

我试过了:

svg
  --armangle: 20deg;

svg
  --armangle: 20;

但两者都不起作用。

有没有办法在 CSS 的函数中使用变量?正常值(没有deg)非常有效(deg 会被忽略)。

【问题讨论】:

【参考方案1】:

您应该使用属性或 CSS 进行样式设置。

从这两个示例中可以看出,样式既可以定义为 SVG 的一部分,也可以定义在单独的样式表中。

使用 CSS 变量/值时需要指定度数(如20deg)。

:root 
  --armangle: 20deg;
<svg viewBox="0 0 3 3"  >
  <style>
    path 
      transform: rotate(var(--armangle));
    
  </style>
  <path d="M 0 0 L 0 1 L 1 1 L 1 0 Z" stroke="#442200"
    stroke- fill="none" transform-origin="32.5% 60%"/>
</svg>

:root 
  --armangle: 20deg;


svg > path 
  transform: rotate(var(--armangle));
<svg viewBox="0 0 3 3"  >
  <path d="M 0 0 L 0 1 L 1 1 L 1 0 Z" stroke="#442200"
    stroke- fill="none" transform-origin="32.5% 60%"/>
</svg>

【讨论】:

是的,现在我明白了。谢谢! :D

以上是关于在 CSS 旋转函数中使用 CSS 变量的主要内容,如果未能解决你的问题,请参考以下文章

css3 动画

css特效之旋转音乐播放器

如何使图像在悬停css上旋转

在 sass 函数中使用 css 变量 - node-sass

css 2D变形

如何在地图函数中使用 JSX 中的变量更改内联 CSS 样式?