【问题标题】:A calc() value within a calc() valuecalc() 值中的 calc() 值
【发布时间】:2015-12-09 19:03:49
【问题描述】:

假设,我正在创建一个图片库;在一定的设备宽度下,会有三幅图像,因此,我需要计算出三分之一:

{width:calc(100% / 3)}

但是,问题是我需要去掉“2px”(两个像素)——我添加了 1px 的边距,因此需要通过从宽度中去掉它来解决这个问题,因此我需要这样做:

{width:calc(calc(100% / 3) - 2px)}

但是,这不起作用:有什么办法可以做到这一点吗?

[我需要计算出三分之一,然后从这里取走两个像素——这很混乱,因为三分之一难以格式化为百分比。]

【问题讨论】:

  • 你试过calc(100% / 3 - 2px) 没有额外的calc() 吗?在这种情况下,我会假设除法优先?你能试试吗?
  • 是的,运算符优先级得到尊重,请参阅docs。如果您希望明确,可以使用calc((100% / 3) - 2px)
  • 我不确定它是否有效,我正在尝试这样做:@media screen and (min-width:1000px){.g li {width:calc(100% / 3 -2px)}}
  • @Sk9TSFVBQkVBTA +- 运算符必须被空格包围
  • 不是 100% 确定,但我认为您需要在运算符和操作数之间留有空格。因此,请确保您在其中有一个空间,如下所示:@media screen and (min-width:1000px){.g li {width:calc(100% / 3 - 2px)}}

标签: css calc


【解决方案1】:

为了完整起见,我将在此处添加一个答案(该解决方案已在提问者问题下方的 cmets 中发布)。

您不需要使用两个calc() 语句。将计算合并到一个 calc() 语句中就足够了。在这种情况下,正如 Andrea Ghidini 在评论中提到的(请参阅 this link),除法将优先于减法(基本数学规则适用!)。

所以你的解决方案是:

width:calc(100% / 3 - 2px)

另外,加减法一定要用空格包围,否则不行!

【讨论】:

  • 好,我正在自己写一个答案:)
  • @AndreaGhidini 如果可以的话,我很乐意与您分享我的代表!我会投票赞成你的一两个答案(我个人认为这很有用)来弥补这一点! :)
  • 没问题,这里的目标是互相帮助! :)
  • @AndreaGhidini 是的,我们不要忘记这一点!
猜你喜欢
  • 2017-07-04
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 2019-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
相关资源
最近更新 更多