我想在我的页面中放大和缩小背景图像。我尝试了多种方法,但似乎没有什么能按我想要的方式工作。:( 我页面的网址是http://quaaoutlodge.com/drupal-7.14/并且每个链接都有不同的背景图片。我知道图片的大小和质量需要优化,但我首先想弄清楚它的技术部分。如果有人可以帮助解决这个问题吗?
非常感谢你!罗恩
我想在我的页面中放大和缩小背景图像。我尝试了多种方法,但似乎没有什么能按我想要的方式工作。:( 我页面的网址是http://quaaoutlodge.com/drupal-7.14/并且每个链接都有不同的背景图片。我知道图片的大小和质量需要优化,但我首先想弄清楚它的技术部分。如果有人可以帮助解决这个问题吗?
非常感谢你!罗恩
如果您想要调整大小并填充整个窗口空间的背景图像,无论大小如何,请使用此 CSS,
html {
background: url(images/bg.jpg) no-repeat center center fixed;
background-size: cover;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
}
如果您想为每个页面使用不同的背景图片,
HTML
<div id="bg">
<img src="<?=$imgsrc;?>" alt="">
</div>
CSS
#bg {
position:fixed;
top:-50%;
left:-50%;
width:200%;
height:200%;
}
#bg img {
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
margin:auto;
min-width:50%;
min-height:50%;
}
来源:CSS-Tricks
可以在 MDN 上找到实现此目的的另一种方法:
.foo {
background-image: url(bg-image.png);
-webkit-background-size: 100% 100%; /* Safari 3.0 */
-moz-background-size: 100% 100%; /* Gecko 1.9.2 (Firefox 3.6) */
-o-background-size: 100% 100%; /* Opera 9.5 */
background-size: 100% 100%; /* Gecko 2.0 (Firefox 4.0) and other CSS3-compliant browsers */
-moz-border-image: url(bg-image.png) 0; /* Gecko 1.9.1 (Firefox 3.5) */
}
IE 后备:
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='path_relative_to_the_HTML_file', sizingMethod='scale')";
来自https://developer.mozilla.org/en-US/docs/Web/CSS/background-size
很高兴看到 html 背景图像被很好地使用。因为一些开发人员依赖后沿 css 来保持向后兼容性,所以对于其他css3
兼容的浏览器存在许多怪癖。就像background:cover
在旧的 Safari 版本 (<4.05) 中一样,它不起作用。在这种情况下,我们可以使用旧的css3
供应商回退,如图所示
html {
background: url(images/bg.jpg) no-repeat center center fixed;
background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
-webkit-backgound-size:100% 100%; /* early css3 implementation */
-webkit-background-size:cover;
}
而且,如果碰巧你想要纯 CSS 中不同页面的不同背景图像,让我们一起去吧
html#bg1 {backrgound-image:url(images/bg1.jpg);}
html#bg2 {background-image:url(images/bg2.jpg);}
但是,如果你不能给你的<html>
标签一个id
或者class
你可能不得不求助于一些javascript
. 然后,您可以为元素上的每个页面使用不同的背景图像<html>
,这正是需要的。这似乎在html
标签上工作正常。有些浏览器在使用时会忽略css
for 。标签不那么喜怒无常。这可能比基于 php 的方法更好。例如:background-image
html
body
<script>
document.getElementsByTagName('html')[0].style.backgroundImage='url(images/bg3.jpg)';
</script>
background-size 的 html css 将继续适用,并将正确覆盖各种浏览器版本。但是请注意,较旧的 Safari 会在javascript
使用空 url 时抛出错误,比如清除背景图像,例如
<script> /*Causes Error Safari 4*/
document.getElementsByTagName('html')[0].style.backgroundImage='url()';
</script>
该错误通常会javascript
在不知道原因的情况下停止执行。相反,我们需要使用style.backgroundImage='none';
在 CSS 中使用媒体查询为不同的屏幕尺寸指定背景图像:
@media all and (max-width: 699px) and (min-width: 520px) {
background-image:url('rightsizebackground.jpg');
}