calc() 是不是适用于 CSS 中图像的背景大小?

Posted

技术标签:

【中文标题】calc() 是不是适用于 CSS 中图像的背景大小?【英文标题】:Does calc() work for background size of image in CSS?calc() 是否适用于 CSS 中图像的背景大小? 【发布时间】:2015-08-21 03:16:52 【问题描述】:

我的问题很简单,calc() 是否适用于纯 CSS 中背景图像的背景大小...

现在我正在为响应式移动视图修复背景图像... 我希望图像在屏幕比例上保持固定,但在任何移动屏幕上调整大小...

我实现了这段代码,它目前不工作:

@media (max-width: 767px)  
   body  
      background-size: calc(100%-200px) auto; 
      background-repeat: repeat; 
       

纯CSS可以吗?

【问题讨论】:

Why doesn't the CSS calc() function work for me in IE9 and Safari? 的可能重复项 【参考方案1】:

是的,它确实适用于您可以使用 %、em、rem、px、cm、vh 等单位的数字。

我也遇到了这个问题:您必须- 之前和之后放置一个空格:

calc(100% - 200px)

我在这里问过类似的问题:Why is CSS calc(100%-250px) not working?

来自 MDN 文档:

注意:+- 运算符必须始终被空格包围。 例如calc(50% -8px) 的操作数将被解析为 百分比后跟一个负长度,一个无效的表达式,而 calc(50% - 8px) 的操作数是一个百分比,后跟一个减号 符号和长度。更进一步,calc(8px + -50%) 被视为 长度后跟一个加号和一个负百分比。 */ 运算符不需要空格,但为了一致性而添加它是 允许,并推荐。

来源:MDN

W3C Documentation

【讨论】:

以上是关于calc() 是不是适用于 CSS 中图像的背景大小?的主要内容,如果未能解决你的问题,请参考以下文章

相对于情节提要中图像的特定点定位元素

CSS中图像的倾斜容器

css 中图像的相对 URL (Zkoss)

计算优化校准中图像的正确位置,并正确绘制背景(在 MFC 对话框中)

如何使用 CSS 更改 <i> 标签中图像的高度和宽度?

如何更改启动画面中图像的大小?