calc() 作为 CSS 单位值

- CR

允许针对长度单位计算值的方法,即 width: calc(100% - 3em)

Chrome

  1. 4 - 18: 不支持
  2. 19 - 25: 支持
  3. 26 - 123: 支持
  4. 124: 支持
  5. 125 - 127: 支持

Edge

  1. 12 - 123: 支持
  2. 124: 支持

Safari

  1. 3.1 - 5.1: 不支持
  2. 6: 支持
  3. 6.1 - 17.3: 支持
  4. 17.4: 支持
  5. 17.5 - TP: 支持

Firefox

  1. 2 - 3.6: 不支持
  2. 4 - 15: 支持
  3. 16 - 124: 支持
  4. 125: 支持
  5. 126 - 128: 支持

Opera

  1. 9 - 12.1: 不支持
  2. 15 - 108: 支持
  3. 109: 支持

IE

  1. 5.5 - 8: 不支持
  2. 9: 部分支持
  3. 10: 部分支持
  4. 11: 部分支持

Chrome for Android

  1. 124: 支持

Safari on iOS

  1. 3.2 - 5.1: 不支持
  2. 6: 支持
  3. 7 - 17.3: 支持
  4. 17.4: 支持
  5. 17.5: 支持

Samsung Internet

  1. 4 - 23:受支持
  2. 24:受支持

Opera Mini

  1. all:不受支持

Opera Mobile

  1. 10 - 12.1:不受支持
  2. 80:受支持

UC Browser for Android

  1. 15.5:受支持

Android Browser

  1. 2.1 - 4.3:不受支持
  2. 4.4 - 4.4.4:部分支持
  3. 124: 支持

Firefox for Android

  1. 125: 支持

QQ Browser

  1. 14.9:受支持

Baidu Browser

  1. 13.52:受支持

KaiOS Browser

  1. 2.5:受支持
  2. 3:受支持

在旧版本的 IE 中使用非标准的 expression() 语法可以模拟支持。

由于浏览器处理 子像素舍入 的方式不同,使用 calc() 表达式的布局可能会产生意外的结果。

资源
MDN Web Docs - calc
Mozilla Hacks 文章
WebPlatform 文档