【问题标题】:css calc number divisioncss 计算除法
【发布时间】:2017-12-02 00:43:15
【问题描述】:

如果我使用计算器,2/30.6666666667,大约是 67%。但是,如果我尝试用 css calc 做同样的事情,我会得到一个错误。

width: calc(2 / 3);

有没有办法解决这个问题?

我不认为它看起来像0.666666666667 这样写得很好。欢迎任何想法。

【问题讨论】:

  • 您可能需要使用 CSS 预处理器。
  • 试试width: calc(100% * 2 / 3);
  • 我尝试使用 less,css-precompilers 并且效果很好。它会自动给出计算值 div#header { width: calc(2 / 3); } 编译为 div#header { width: calc(0.6666666666666666); } 在这里试试winless.org/online-less-compiler
  • 带有预处理器的输出仍然是一个四舍五入的数字。我将采用其他解决方案之一。还是谢谢。

标签: css percentage multiplication calc


【解决方案1】:

使用这个:

width: calc(100% / 3 * 2);

据我所知,CSS calc 不会将分数转换为百分比。

【讨论】:

    【解决方案2】:

    你需要乘以100才能转换成%

    div{
      background-color: red;
      width: calc( (2/3)*100% );
      
    }
    <div>yeah</div>

    【讨论】:

      【解决方案3】:

      问题在于calc(2 / 3) 你只会得到一个没有单位的数字。 CSS 不能只显示一个数字作为宽度。这就像你设置 width: 3 这显然不起作用。

      如果你想要这个百分比,你需要将它乘以 100%

      width: calc(2 / 3 * 100%);
      

      如果你真的想要以像素为单位的结果,请将其乘以 1px

      width: calc(2 / 3 * 1px);
      

      【讨论】:

      • 很好的答案!然后要添加一个单位,我们需要将它乘以 1 和单位后缀。因为 100% 与 1 相同,所以我们乘以 100 而不是 1。
      【解决方案4】:

      为了完整起见,我认为这也应该适用,仅适用于这种情况:

      width: calc(200% / 3);
      

      尚未经过测试。

      【讨论】:

        【解决方案5】:

        在您的示例中,您没有定义单位,并且某个元素的宽度不能是无单位的。您需要将宽度转换为像素、百分比或类似单位。

        例如:

        width: calc(100px / 2) // the result will be pixels
        width: calc(100% / 2) // the result will be in percentages
        width: calc(100 / 2 * 1px) // the result will be in pixels
        

        有一篇很棒的文章解释了 calc() 函数here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-31
          • 2010-10-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多