我知道有几种技术可以使用 CSS3 或绝对定位和 100% 高度/宽度来获得全屏背景图像。
但是,所有这些技术都会导致固定的背景图像,这意味着如果您的某些内容大于需要滚动条的屏幕,则滚动时背景图像将保持固定。
是否可以将背景图像拉伸到页面的宽度/高度,而不是屏幕?
我知道有几种技术可以使用 CSS3 或绝对定位和 100% 高度/宽度来获得全屏背景图像。
但是,所有这些技术都会导致固定的背景图像,这意味着如果您的某些内容大于需要滚动条的屏幕,则滚动时背景图像将保持固定。
是否可以将背景图像拉伸到页面的宽度/高度,而不是屏幕?
我在构建全屏幻灯片时遇到了同样的问题:固定位置使图像在滑动包含元素时保持在原位,而不是让它们与该元素一起滑动......
我使用这些技术尝试了很多解决方法:
Awesome, Easy, Progressive CSS3 Way : 我之前尝试了所有的可能性都徒劳地意识到不填充位置值是有效的(真的很棒)!
html {
background: url(images/bg.jpg) no-repeat center center;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
我会向您指出backstretch jQuery 插件,以将此功能添加到您的页面。链接页面显示内容如何保持固定并根据浏览器的宽度/高度进行缩放。
编辑
我不太确定如何实施这样的解决方案;我认为您可能必须使用 javascript,因为在加载之前您无法确定内容的大小。这是我尝试的方法:
我不太确定它在性能方面的感觉如何,但这种技术的一个缺点可能是,除非您对内容设置大小限制,否则您可能必须使用非常大的图像来覆盖所有情况。
这种方法的问题是你永远无法猜测你的内容会变得有多大。1000 像素?10,000 像素?想象一下将图像拉伸到那么大,如果你决定使用一个巨大的图像,它会减慢你的页面加载速度,或者如果你决定使用一个合理大小的图像,如果它超出了它的边界,它将非常严重地扭曲。
以此为例,相应地增加内容计数,看看背景图像如何扭曲:http: //jsfiddle.net/andresilich/75Sfp/
假设您希望网站中有一个可变的图像大小标题(占据整个高度)
在您的标题中添加一个 ID 或类,使用您想要的任何命名。
我将其视为 ( id="test"
)
现在,转到链接的 JS 文件并粘贴这个..
var x = screen.availHeight + "px";
console.log(x)
document.getElementById("test").style.height = x;