css - calc() 在媒体查询中不起作用

标签 css media-queries css-calc

@media screen and (max-width: calc(2000px-1px)) { 
  .col { width: 200px; }
}

减法后的值应该是 1999px,但它似乎不起作用。如果我手动将它更改为 1999px 它工作正常,所以我知道这不是我的 CSS 的问题。媒体查询不支持 calc,还是我做错了什么?

最佳答案

2022 年 3 月 21 日再次编辑答案:

在规范的当前版本中,the spec 不支持在媒体查询中使用 calc(或 var) (正如 TylerH 在下面指出的那样)。

Properties sometimes accept complex values, e.g., calculations that involve several other values. Media features* only accept single values: one keyword, one number, etc.

* 媒体功能包括 (max-width: ...) (或 (... < width < ...) )。

2012 年的旧规范也明确提到无计算

OP 问题肯定会被打破,因为 calc 需要运算符之间的空格 calc(2000px - 1px) ,但即使使用空格,您也不应该期望或相信它能够可靠地工作。

支持 calc 的浏览器实际上并不遵循规范。


答案已于 2018 年 2 月 13 日编辑:

使用 calc规范支持媒体查询,但最近(2018 年 2 月)才由浏览器实现支持。目前,calc Safari Technology Preview 49+ 支持媒体查询, Chrome 66+ , 和 Firefox 59+ .参见 MDN's calc() page获取最新信息。

关于css - calc() 在媒体查询中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23667208/

相关文章:

css - Computed values 来自哪里,它来自浏览器默认 css 吗?

html - 我怎样才能只针对最小宽度为 : 600px in a style sheet? 的 IE(任何版本)

css - 媒体查询不覆盖 webkit 计算

css - 为什么不忽略具有非法值的 `calc()` 宽度?

css - 在单词之间的空白处换行

javascript - 网站从http迁移到https

html - 如何呈现彼此相邻的 2 个 html 表格?

html - 当还使用 :hover, a :visited, 等时,@media 查询是否仍然对链接有效

html - 如何在 css hack/媒体查询中扩展 Internet Explorer?

css - 使用纯 CSS 将 CSS var() 分配给另一个 CSS 元素的样式属性值?