我想在网站上对背景进行响应式图像排列。
例如,基于不同的屏幕分辨率,我想加载不同的背景图像。此外,如果我可以定义不同的行为,那将很有用;例如,分辨率较高的桌面将具有较大的拉伸背景图像,而上网本可能具有缩小的较小版本以适应,或者而 3GS iPhone 将具有较小的平铺图像。
你将如何实现这样的场景?
我想在网站上对背景进行响应式图像排列。
例如,基于不同的屏幕分辨率,我想加载不同的背景图像。此外,如果我可以定义不同的行为,那将很有用;例如,分辨率较高的桌面将具有较大的拉伸背景图像,而上网本可能具有缩小的较小版本以适应,或者而 3GS iPhone 将具有较小的平铺图像。
你将如何实现这样的场景?
我相信这将帮助您解决您的问题。我今天在一次无关的 Google 探险中遇到了以下库:eCSSential。好像是车票。您可以使用该库来检测屏幕尺寸,并加载适当的 CSS 文件,同时考虑当前视口和当前设备的屏幕尺寸。很漂亮。
结合我上一部分的回答,相信你会有一个很好的方法来处理你的问题。
下面只是您可以查询的屏幕尺寸的一个示例,但您明白了。可以为每个场景设置背景样式。
/* Smartphones (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 320px)
and (max-device-width : 480px) {
/* Styles */
}
/* Smartphones (landscape) ----------- */
@media only screen
and (min-width : 321px) {
/* Styles */
}
/* Smartphones (portrait) ----------- */
@media only screen
and (max-width : 320px) {
/* Styles */
}
/* iPads (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px) {
/* Styles */
}
/* iPads (landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : landscape) {
/* Styles */
}
/* iPads (portrait) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : portrait) {
/* Styles */
}
/* Desktops and laptops ----------- */
@media only screen
and (min-width : 1224px) {
/* Styles */
}
/* Large screens ----------- */
@media only screen
and (min-width : 1824px) {
/* Styles */
}
/* iPhone 4 ----------- */
@media
only screen and (-webkit-min-device-pixel-ratio : 1.5),
only screen and (min-device-pixel-ratio : 1.5) {
/* Styles */
}
对于任何分辨率,背景都可以设置不同的样式,例如:
@media only screen
and (min-device-width : [width])
and (max-device-width : [width]) {
body {
background-image: url('../img/image.png');
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
// or you could just center the image if it's bigger than the current viewport
// background-position: center center;
}
}
信用:大部分来自CSS Tricks
您可以投资一点 jquery 来根据屏幕大小更改背景。这是您可以执行的操作的示例:
if ( $(window).width() < 1000 ) {
$('body').css('background','url("yourimage")';
} else {
$('body').css('background','url("yourimage")';
}
如果您有时间,介意告诉我们您尝试过什么吗?
本文讨论了几种方法。最后一种方法可能正是您正在寻找的。它包括一个用于检查窗口大小和设置背景的 JavaScript 函数。
您可以使用CSS-Tricks上解释的 CSS3 整页背景图像,然后在必要时使用 jQuery Fallback。Gaya 设计博客上有一篇关于 jQuery 方法的好文章
CSS:
html {
background: url(images/bg.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
使用@media
@apttap 指定的查询方法和这个 CSS 片段,您可以使用每个设备像素比的多个背景图像。