【发布时间】:2011-10-09 03:45:32
【问题描述】:
我知道several techniques 存在具有全屏背景图像,使用 CSS3 或绝对定位和 100% 高度/宽度。
但是,所有这些技术都会导致固定的背景图像,这意味着如果您有一些大于屏幕的内容需要滚动条,则滚动时背景图像将保持固定。
是否可以将背景图片拉伸到页面的宽度/高度,而不是屏幕?
【问题讨论】:
标签: html css background fullscreen stretch
我知道several techniques 存在具有全屏背景图像,使用 CSS3 或绝对定位和 100% 高度/宽度。
但是,所有这些技术都会导致固定的背景图像,这意味着如果您有一些大于屏幕的内容需要滚动条,则滚动时背景图像将保持固定。
是否可以将背景图片拉伸到页面的宽度/高度,而不是屏幕?
【问题讨论】:
标签: html css background fullscreen stretch
我在构建全屏幻灯片时遇到了同样的问题:固定位置使图像在滑动包含元素时保持在原位,而不是让它们与该元素一起滑动...
我使用those techniques尝试了很多解决方法:
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 plugin 以将此功能添加到您的页面。链接页面显示了内容如何保持固定并根据浏览器的宽度/高度进行缩放。
编辑
我不太确定如何实施这样的解决方案;我认为您可能必须使用 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;
【讨论】: