如何在不丢失比例的情况下缩放背景图像
How to scale a background image without losing proportions
我想创建一个填充整个背景的网页背景图像,而不会扭曲图像并更改其比例。
例如,您可以在LaunchRock的页面和他们的主页上看到这一点的出色实现。
我在StackOverflow上看到了这个问题,但是如果你玩弄它产生的东西,你会看到背景图像是100%的高度和100%的宽度,这意味着照片的原始比例没有保持并且图像被拉伸。
请注意,在 LaunchRock 示例中,如果调整浏览器窗口的大小,图像将按比例增长,并且始终填充整个窗口(无论它们使用什么大小的窗口或背景图像)。
如果浏览器窗口不够宽,它会裁剪背景图像的两侧(保持图像居中并裁剪左右两侧),如果窗口不够高,它会裁剪背景图像的底部。
无论浏览器窗口的大小如何,都会保持图像高/宽比并填充整个背景。
我想这不能用纯CSS完成,可能需要一些JavaScript。有什么想法吗?
谢谢
它只用CSS完成,像这样:
body {
background: black url(/images/back.jpg) no-repeat top center fixed;
-webkit-background-size: cover;
background-size: cover;
}
使之成为可能的事情:
- CSS 属性
background-size
设置为cover
及其供应商前缀版本 - 使用侧面淡入黑色的
background-image
- 位置设置为
top center
- 使用
fixed
属性
如果你不介意使用jQuery,你可以尝试一下 http://srobbin.com/jquery-plugins/backstretch/。
示例:http://jsfiddle.net/rPhLa/
您必须设置:
html,body{ height:100%; width:100%; }
所以它们占据了整个屏幕,然后是背景:
body { background-image: url(http://launchrock.com/images/back.jpg); background-repeat: no-repeat; background-position:center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; }
您
花费的 LaunchRock 页面(您作为示例)使用 CCS3 属性:background-size
。这是发挥规模"魔力"的属性。
关于 background-size
: http://www.css3.info/preview/background-size/
- 不要忘记查看此属性的浏览器支持。
这很可能可以用javascript来完成,甚至只使用CSS2。对不起,我现在手里没有例子。
相关文章:
- 在不阻止默认行为的情况下检测IE10中的缩放
- 在不移动内部文本的情况下缩放元素的效果
- 如何在“控制缩放”下的“打开图层”上添加一些图像
- “打开街道地图”的长线在高缩放级别下消失
- 如何在不使用滚动条的情况下将html页面放入弹出窗口(对话框)
- 在这种情况下,我如何在jquery中将字符串放入php中
- 调整脚本大小可以向上而不是向下缩放.使用行列式会使它跳跃
- Fullpage.js在横向模式下无法在iOS上正常缩放
- 如何在不丢失比例的情况下缩放背景图像
- 如何在不使用dijit的情况下在按钮单击时更改地图缩放级别
- 在不增加滚动条宽度的情况下缩放网页?或指定滚动条宽度
- 如何在启用缩放的情况下使用Highcharts触发模式视图
- 如何在没有抗锯齿的情况下将缩放后的文本作为图像
- JS:如何在没有地址栏和缩放的情况下主持iOS触摸移动游戏
- 有没有一种方法可以在不使用注释的情况下缩小我的angular应用?
- 如何在不影响图像大小的情况下对响应图像进行中心缩放
- Google maps JS API在不平移地图的情况下缩放鼠标滚轮
- D3如何在启用平移/缩放的情况下居中元素
- 在不知道目标位置的情况下拖放目标
- 防止android默认浏览器在横向模式下缩放