自适应大小的背景图片
2014-08-12 16:28
369 查看
相信很多前端会遇到这个问题:要做一个尺寸自适应的页面,其中某个容器的背景图也需要跟着容器的尺寸一起改变。如果背景是有规律的纯色或者渐变还好办,直接平铺即可。但如果背景是要求完全显示的一张完整的图片呢,我们使用background-image这个属性是没办法达到我们的要求的,因为背景图的大小是不会随着容器改变的。
如此我们就要考虑能达到我们要求的元素了,用img元素能够实现尺寸的适应:
这样一来,img的尺寸就能和容器div的尺寸相适应了。但如何在容器中装元素呢,毕竟图片是做背景而不是内容来用的。这里我们需要用一点作弊的方式来实现了:将容器的内容先转换为块级元素(如果它不是块级元素),然后使之浮动回到本来应该在的位置。
如果父级的div的尺寸是动态不固定的,则浮动的margin-top值需要用js判断之后再做赋值。
这种方案其实也只是一种折中的办法,本人尚未找到纯css的解决方案,如果有更好方法,欢迎留言讨论,互相学习。
10-30更新:
css3中新特性可以完美解决上面问题:
background-image:url(/../);
background-size:100% 100%;
如此我们就要考虑能达到我们要求的元素了,用img元素能够实现尺寸的适应:
<div style="width:200px;height:200px;"> <img style ="width:100%;height:100%;" src="xxx.jpg" /> </div>
这样一来,img的尺寸就能和容器div的尺寸相适应了。但如何在容器中装元素呢,毕竟图片是做背景而不是内容来用的。这里我们需要用一点作弊的方式来实现了:将容器的内容先转换为块级元素(如果它不是块级元素),然后使之浮动回到本来应该在的位置。
<div style="width:200px;height:200px;"> <img style ="width:100%;height:100%;" src="xxx.jpg" /> <span style="display:block;position:relative;margin-top:-200px;">内容</span> </div>
如果父级的div的尺寸是动态不固定的,则浮动的margin-top值需要用js判断之后再做赋值。
这种方案其实也只是一种折中的办法,本人尚未找到纯css的解决方案,如果有更好方法,欢迎留言讨论,互相学习。
10-30更新:
css3中新特性可以完美解决上面问题:
background-image:url(/../);
background-size:100% 100%;
相关文章推荐
- picturebox的背景图片怎么能根据分辨率大小自适应。?
- CSS控制背景图片自适应表格大小
- 背景图片自适应分辨率浏览器大小自动拉伸全屏代码
- 绑定的背景图片自适应窗口大小
- FullBg-网页图片背景自适应大小
- CSS背景图片自适应 根据浏览器分辨率大小自动伸缩
- css圆角背景图片按钮-自适应内容大小
- 背景图片自适应分辨率浏览器大小自动拉伸全屏代码
- css 背景图片自适应元素大小
- 手机网页图片自适应大小 background-size css 图片全屏 背景尺寸设置
- html/js 实现背景图片自适应窗口分辨率大小
- css -- 背景图片自适应屏幕大小
- 背景图片按比例拉伸自适应大小
- 手机网页图片自适应大小 background-size css 图片全屏 背景尺寸设置
- css实现背景图片自适应大小
- css 背景图片自适应元素大小
- 背景图片自适应大小(css3)
- 背景图片随窗口大小改变自适应
- css元素背景图片自适应屏幕大小
- winfrom-背景图片填充自适应大小