How to scale a background image without losing proportions
I want to create a web page background image that fills the entire background, without distorting the image and changing it's proportions.
You can see a great implementation of this on LaunchRock's pages, and on their homepage, for example.
I saw this question on StackOverflow however if you play around with what that produces you'll see that the background image is 100% height and 100% width which means that the original proportions of the photo are not maintained and the image is stretched.
Notice in the LaunchRock example that if you resize your browser window the image grows proportionally and always fills the entire window (no matter what size window or background image they use).
If the browser window is not wide enough it crops the sides of the background image (keeping the image centered and cropping the left and right sides) and if the window is not high enough it crops the bottom part of the background image.
No matter what size the browser window is, the image height/width ratio is maintained and the entire background is filled.
I'm guess this can't be done with pure CSS, some JavaScript may be needed. Any ideas?
Thanks
It is done with CSS only, like this:
body {
background: black url(/images/back.jpg) no-repeat top center fixed;
-webkit-background-size: cover;
background-size: cover;
}
Things that make it possible:
background-size
set to cover
and its vendor prefixed versions background-image
that fades to black on the sides top center
fixed
property 如果你不介意使用jQuery,你可以试试http://srobbin.com/jquery-plugins/backstretch/。
Example: http://jsfiddle.net/rPhLa/
You have to set:
html,body{ height:100%; width:100%; }
So they occupy the whole screen, then for the background:
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; }
链接地址: http://www.djcxy.com/p/89168.html
上一篇: 保持div的宽高比,但在CSS中填充屏幕宽度和高度?
下一篇: 如何在不损失比例的情况下缩放背景图片