【发布时间】:2015-12-11 20:33:56
【问题描述】:
重新问这个问题,因为这个 2013 线程 (100-width-background-image-with-an-auto-height) 上的答案似乎不再起作用了。
- 我需要制作具有 100% 宽度和自动高度的响应式背景图像。
- 我想根据屏幕大小使用媒体查询而不是 Javascript 来提供不同的图像。
- 如果它可以在不同的浏览器上运行(至少 Chrome / Firefox)会很好
使用以下代码:
<img src="image.jpg" style="width: 100%;">
图像显示正确,100% 宽度和自动高度(请参阅此处:JSFIDDLE1)但在更改屏幕尺寸时我无法替换它的来源,除非我使用 Javascript。
因此,我正在努力在 DIV 上使用背景图像。
<div class="imageContainer1"></div>
并且,使用以下 CSS,一切正常(至少在 Chrome/Safari 上):
.imageContainer1 {
content:url("image.jpg");
}
请看这里JSFIDDLE2
但是.. 这似乎不适用于 Firefox! :-( 因为“内容”属性似乎在 Firefox 上不兼容。
所以....我想使用“背景图像”属性,并找到一个与所有浏览器兼容的解决方案,但我正在努力设置 100% 的宽度和自动高度。
这个
<div class="imageContainer2"></div>
.imageContainer2 {
background-image: url("image.jpg");
background-position: center top;
background-size: 100% auto;
}
不显示任何东西,但如果你设置,例如:
height: 500px;
您将能够看到图片的一部分。
这是 JSFiddle:JSFiddle3
我试过用:
background-size: cover/contain
但这不是我想要做的,因为“覆盖”将允许图像从侧面伸出,而“包含”根本不允许图像伸出)。
这个噩梦有什么解决办法吗?
【问题讨论】:
-
“我想使用媒体查询根据屏幕大小提供不同的图像” - 所以使用多个
img元素并根据屏幕分辨率显示/隐藏它们? -
@Vucko 嗯。我想知道这是否会下载所有图像,即使它们是隐藏的。 IE。移动用户会在后台下载桌面图片
-
是的,没错,所有图片都会被下载。
标签: html css background background-image responsiveness