微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决将 rem 单位乘以一个值以输出 deg 单位

: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 并在 deg 函数的末尾或之后添加 calc()。这不起作用。

这个问题主要是学术性的,因为它与 vanilla 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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?