将 rem 单位乘以一个值以输出 deg 单位

Multiplying rem units by a value to output deg units

:root {
  --length: 10rem;
}
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html, body {
  height: 100%;
}
body {
  display: flex;
  justify-content: center;
  align-items: center;
}
hr {
  border-style: none;
  border-radius: calc( var( --length ) / 5 ); /*dividing by a unitless number works*/
  width: var( --length );
  height: var( --length );
  background-color: #444;
}

/* issue in question below */
hr {
  transform: rotate( 
    calc( 
      var( --length ) * 4.5deg 
    ) 
  );
}
<hr>

var( --length ) 等于 10rem 乘以 4.5 得到 45 是 calc() 函数的期望结果。主要问题是让 calc() 函数的结果以度为单位注册。

本质上,我将 10rem 乘以 4.5deg,并得到所需的输出 45deg

已尝试使用 4.5 的无单位值代替 4.5deg,并在 calc() 函数的末尾或之后添加 deg。这没有用。

这个问题主要是学术性的,因为它与香草 CSS 本身的限制有关。涉及 SASS 等预处理器的答案超出了范围。

为长度使用无单位值,然后您可以轻松为其他值放回 rem 单位

:root {
  --length: 10;
}
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html, body {
  height: 100%;
}
body {
  display: flex;
  justify-content: center;
  align-items: center;
}
hr {
  border-style: none;
  border-radius: calc( var( --length ) * 1rem / 5 );
  width: calc(var( --length ) * 1rem);
  height: calc(var( --length ) * 1rem);
  background-color: #444;
}

/* issue in question below */
hr {
  transform: rotate( 
    calc( 
      var( --length ) * 4.5deg 
    ) 
  );
}
<hr>